其他人回答说,使用Python 3时,您应该以文本模式打开输出文件,即
with open('out.csv', 'w', newline='') as resultFile: ...但是,您还需要解析传入的CSV数据。因为它是您的代码,所以将输入CSV文件的每一行作为单个字符串读取。然后,无需将该行分成其组成字段,它会将字符串传递给CSV编写器。结果,
csv.writer将将字符串视为一个序列,并将每个
字符 (包括任何终止的换行符)输出为单独的字段。例如,如果您输入的CSV文件包含:
1,2,3,4
您的输出文件将这样写:
1,“,”,2,“,”,3,“,”,4,“”
您应该将
for循环更改为此:
for row in csv.reader(f1): # process the row wr.writerow(row)
现在,输入的CSV文件将被解析为字段,
row并将包含一串字符串-每个字段一个。对于前面的示例,
row将是:
for row in csv.reader(f1): print(row)['1','2','3','4']
当该列表传递到时,
csv.writer文件的输出将是:
1,2,3,4
将所有这些放在一起,您将获得以下代码:
import csvwith open('input_1.csv') as f1, open('out.csv', 'w', newline='') as resultFile: wr = csv.writer(resultFile, dialect='excel') for row in csv.reader(f1): wr.writerow(row)


