我正在尝试启动并运行数据解析脚本。就数据操作而言,它起作用。我想要做的是设置此功能,以便我可以通过一个命令输入多个用户定义的CSV。
例如
> python script.py One.csv Two.csv Three.csv
如果您有关于如何自动输出CSV命名任何意见,这样,如果input = test.csv
,output = test1.csv
我会很感激这一点。
得到
TypeError: coercing to Unicode: need string or buffer, list found
为线
for line in csv.reader(open(args.infile)):
我的代码:
import csv
import pprint
pp = pprint.PrettyPrinter(indent=4)
res = []
import argparse
parser = argparse.ArgumentParser()
#parser.add_argument("infile", nargs="*", type=str)
#args = parser.parse_args()
parser.add_argument ("infile", metavar="CSV", nargs="+", type=str, help="data file")
args = parser.parse_args()
with open("out.csv","wb") as f:
output = csv.writer(f)
for line in csv.reader(open(args.infile)):
for item in line[2:]:
#to skip empty cells
if not item.strip():
continue
item = item.split(":")
item[1] = item[1].rstrip("%")
print([line[1]+item[0],item[1]])
res.append([line[1]+item[0],item[1]])
output.writerow([line[1]+item[0],item[1].rstrip("%")])
我不太了解该错误的原因。有人可以用外行的术语解释吗?
请记住,我是一个整体的编程/ python新手,并且基本上是一个人学习,因此,如果可能的话,您可以解释出什么问题了/如何修复它,以便我加以注意以供将来参考。
args.infile
是文件名 列表 ,而不是一个文件名。循环播放:
for filename in args.infile:
base, ext = os.path.splitext(filename)
with open("{}1{}".format(base, ext), "wb") as outf, open(filename, 'rb') as inf:
output = csv.writer(outf)
for line in csv.reader(inf):
在这里,我曾经os.path.splitext()
分割扩展名和基本文件名,以便可以生成一个新的输出文件名添加1
到基本文件名。
问题内容: 我已经有很长时间了,但是无法解决这个错误: 渲染时捕获TypeError:强制转换为Unicode:需要字符串或缓冲区,找到NoneType 当我尝试在其中一个模型上添加或修改时,它会在管理员中发生(显示效果很好) 这是模型: 知道我在做什么错吗? 追溯: 问题答案: 当您使用的方法是返回未输入的字段时,会发生此错误。任何空白字段均为,Python无法转换,因此会出现错误。 在您的情况
问题内容: 需要帮忙。有一个名为arglist的数据列表,例如:[‘dlink’,’des’,‘1210’,’c’,24] <-这就是“打印”视图。 这段代码: 它给: 怎么了? 问题答案: 当json.loads需要一个字符串时,您正在尝试加载文件对象。您可以使用 或者更好: 在第一个示例中,文件是打开的,但从未关闭(不好的做法)。在第二个示例中,上下文管理器在离开上下文块后关闭文件。
问题内容: 我想使用node.js进行HTTP请求以从Web服务器加载一些文本。由于响应可能包含很多文本(有些兆字节),因此我想分别处理每个文本块。我可以使用以下代码来实现: 这似乎没有问题。但是我想支持HTTP压缩,所以我使用zlib: 这可以是像多字节字符的问题,其由两个字节组成:和。如果第一个字节被第一个块()覆盖,第二个字节被第二个块覆盖,则将在文本块的结尾/开头产生不正确的字符。如何避免
我有一个node.js readstream,它发出一个缓冲区,并使用toString()函数将缓冲区转换为字符串,之后,当我试图通过JSON.parse()函数将字符串转换为JSON时,它会抛出解析错误。 有没有最好的方法将缓冲区转换为字符串,然后将字符串转换为JSON? JSON字符串如下所示, [{“data1”:1487328824948,“encrypt”:false,“version”
问题内容: 我有一个包含unicode字符等的字符串,以某种方式不被我接收,但被作为接收。如何将其转换回unicode? 显然不是答案。那是什么 问题答案: Unicode转义仅适用于unicode字符串,因此 实际上是由6个字符组成的字符串:“ \”,“ u”,“ 2”,“ 0”,“ 2”,“ 6”。 要从中制作出unicode,请使用:
我正在从一个字符串列表中创建一个字符串数组。到目前为止,我有以下代码: 问题是toArray()返回的是Object[],而不是String[],后者在尝试转换为String[]时产生类转换异常。除了for循环之外,有没有一种简单的方法来实现我的目标,在for循环中,我将遍历Object[],将每个对象转换为一个字符串,然后将每个字符串添加到一个String[]?对一个简单的任务来说似乎有很多工作