你遇到的问题是在
,
后面有一个空格,所以在第一个示例中你实际使用的分隔符是
', '
。
幸运的是,你不是第一个遇到这个问题的人。可以使用设置为
True
的
csv.skipinitialspace 来解决问题。
假设有以下代码:
$ cat file1.csv
ab, "cd
ef", gh, "ijk, lm"
并且:
$ cat file2.csv
a,b,c
d,e,f
您可以做以下事情:
with open('file1.csv', 'r') as f:
for row in csv.reader(f, quotechar='"',skipinitialspace=True):
print(f"len: {len(row)}, row: {row}")
输出:
len: 4, row: ['ab', 'cd\nef', 'gh', 'ijk, lm']
同样的方言适用于第二个示例,在该示例中,有一个真正的,
分隔符而没有尾随空格:
with open('file2.csv', 'r') as f:
for row in csv.reader(f, quotechar='"',skipinitialspace=True):
print(f"len: {len(row)}, row: {row}")
输出:
len: 3, row: ['a', 'b', 'c']
len: 3, row: ['d', 'e', 'f']