将分号从分号转换为CSV中的逗号?

将分号从分号转换为CSV中的逗号?

问题描述:

我有一个简单的场景,我将CSV中的分隔符从;(分号)更改为,(逗号)。下面是代码将分号从分号转换为CSV中的逗号?

代码:

import csv 
semicolonin = csv.reader(r"C:\pyscripts\1.csv", delimiter=';') 
commaout = csv.writer(r"C:\pyscripts\1.csv", delimiter=',') 
for row in semicolonin: 
    commaout.writerow(row) 

但是我收到一个错误。我错过了什么吗?

TypeError: argument 1 must have a "write" method 

在执行线commaout = csv.writer(r"C:\pyscripts\1.csv", delimiter=',')

+3

您通过一个文件路径,而不是一个文件对象。 'csv.reader(打开(r“C:\ pyscripts \ 1.csv”),delimiter =';')' –

+0

您想为输出使用不同的文件名。除非丢失所有数据是你的目标。上面代码中的 –

你必须提供一个文件对象的作家方法,像这样:

import csv 
with open(r"C:\pyscripts\1.csv") as in_file, open(r"C:\pyscripts\1.csv", 'w') as out_file: 
    semicolonin = csv.reader(in_file, delimiter=';') 
    commaout = csv.writer(out_file, delimiter=',') 
    for row in semicolonin: 
     commaout.writerow(row) 
+0

只输出csv文件中的路径名称,没有其他内容。 – Alex

+0

正确,与作者同样的问题。您必须将文件对象提供给csv.reader,而不仅仅是路径。 – Lumen

+0

那么这里的解决方案是什么? – Alex