我的印象是这是一个常见问题,我有一个 csv 文件,字段中有换行符。我正在寻找 Python 中的修复程序——如果可能的话,也在 csv 模块中。
这是我创建的示例文件
$ more test_csv.csv
a,"b",c,d,"e
e
e",f
a,bb,c,d,ee ,"f
f"
a,b,"c
c",d,e,f
并不是所有的字段都用引号括起来(虽然在这个例子中我的使用是随机的,实际文件应该匹配 quoting=csv.QUOTE_MINIMAL)
输出应该类似于
[[a,b,c,d,"e\ne\ne",f],[a,bb,c,d,ee,"f\nf"][a,b,"c\nc",d,e,f]]
相反,我得到
[[['a', 'b', 'c', 'd', 'e\n']], [['e']], [['e"', 'f']], [['a', 'bb', 'c', 'd', 'ee ', 'f\n']], [['f"']], [['a', 'b', 'c\n']], [['c"', 'd', 'e', 'f']]]
请关注行数和列数。另一个担忧是,在第三行中,包含了不应该包含的报价。
到目前为止,这是我的代码:
导入 csv
file = open('test_csv.csv', 'r')
rows = []
for line in file:
fields = []
mycsv = csv.reader([line], dialect='excel', \
quotechar='"', quoting=csv.QUOTE_MINIMAL)
for field in mycsv:
fields.append(field)
rows.append(fields)
谢谢你。