将分号从分号转换为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=',')
。
答
你必须提供一个文件对象的作家方法,像这样:
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)
您通过一个文件路径,而不是一个文件对象。 'csv.reader(打开(r“C:\ pyscripts \ 1.csv”),delimiter =';')' –
您想为输出使用不同的文件名。除非丢失所有数据是你的目标。上面代码中的 –