繁体   English   中英

CSV合并问题,Python

[英]csv merging issue, python

使用以下代码合并CSV文件,有时会将数据放入错误的列中。 而不是将其放在AD列中,而是将数据放在FJ列中。 据我所知,这是新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) (声誉不足以添加到原始问题中)

视觉问题

我附上了这个问题的图片。 我需要能够将每一行都写入要写入的列中。

感谢您的帮助。

看起来您没有在将行写入文件之前检查行是否以换行符结尾。 这可能会弄乱对齐方式。 你可以试试这个吗?

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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM