Python csv写入器在从另一个csv文件复制数据时添加了双引号,如何完全复制相同的数据
问题描述
Python csv写入器在从另一个csv文件复制数据时添加了双引号,因此我只想知道如何完全复制相同的数据
#Reading from csv file
with open('py_csv/oscar_age_male.csv','r') as csv_file:
csv_reader=csv.reader(csv_file)
#Creating new file and opening it and changing delimiter
with open('py_csv/newfile.csv','w')as newfile:
csv_writer=csv.writer(newfile)
#Writing Row by row
for line in csv_reader:
csv_writer.writerow(line)
数据来自原始文件=
1, 1928, 44, "Emil Janning", "The Last Command, The Way of All Flesh"
2, 1929, 41, "Warner Baxter", "In Old Arizona"
复制后的数据=
1, 1928, 44," ""Emil Janning"""," ""The Last Command"," The Way of All Flesh"""
2, 1929, 41," ""Warner Baxter"""," ""In Old Arizona"""
解决方案
问题是逗号后的空格。在CSV中,允许在字段周围加上引号,但由于字段以空格开头,所以引号似乎并没有囊括整个字段值。因此,它们被视为需要在输出中加倍的文字引号。
使用skipinitialspace
选项来忽略这些空格。
csv_reader=csv.reader(csv_file, skipinitialspace=True)