我有两个制表符分隔的 csv 文件(带有标题),我需要在 python 中合并。
此外,在合并的文件中,我想在最后添加一列来标识文件,因为尽管它们具有相同的格式,但它们具有不同的数据,我需要稍后将它们分开。所以,我想在每行输出中添加一个名为“source”的列,file1 为 0,file2 为 1。
我已经使用了 csv 模块,但是 writerow 在它写入的每一行之间添加了一个额外的换行符,并且这段代码不会从 file2 中写入任何内容。我在这里做错了什么?另外,如何在行对象中添加额外的列“源”?
import os, csv
path1 = os.path.abspath("../data/file1.txt")
path2 = os.path.abspath("../data/file2.txt")
merged_path = os.path.abspath('../data/output.txt')
# merge the two files for further processing
merged_file = csv.writer(open(merged_path, 'a'), delimiter = '\t')
#file1
fg = csv.reader(open(path1, 'r'), delimiter = '\t')
for line in fg:
if line[7] != '\N':
merged_file.writerow(line)
#file2
bg = csv.reader(open(path2, 'r'), delimiter = '\t')
for line in bg:
if line[16] != '\N':
merged_file.writerow(line)