使用下面的代码合并CSV文件,有时会将数据放在错误的列中。它不是在A列中,而是将数据放在F-J列中。据我所知,这是一个新CSV的第一行,但是,并不是每个CSV文件都放在错误的列中。
import glob
import codecs
import csv
my_files = glob.glob("*.csv")
header_saved = False
with codecs.open('Final-US-Allies-Expects.csv','w', "UTF-8", 'ignore') as file_out: #save data to
for filename in my_files:
with codecs.open(filename, 'r', 'UTF-8', 'ignore') as file_in:
header = next(file_in)
if not header_saved:
file_out.write(header) #write header
header_saved = True
for line in file_in:
file_out.write(line) #write next line原始代码可在 合并多个CSV文件而不重复头(使用Python) (声誉不足以添加原始问题)
我附上了这件事的图片。我需要能够把每一行都写进专栏中,这是要写进的。
谢谢你提前帮忙。
发布于 2017-08-16 21:44:03
看起来,在将行写入文件之前,您不检查这些行是否以新行字符结尾。这可能会弄糟路线。你能试试这个吗?
import glob
import codecs
import csv
my_files = glob.glob("*.csv")
header_saved = False
with codecs.open('output.csv','w', "UTF-8", 'ignore') as file_out:
for filename in my_files:
with codecs.open(filename, 'r', 'UTF-8', 'ignore') as file_in:
header = next(file_in)
if not header_saved:
file_out.write(header if "\n" == header[-1] else header + "\n")
header_saved = True
for line in file_in:
file_out.write(line if "\n" == line[-1] else line + "\n")https://stackoverflow.com/questions/45723063
复制相似问题