我有多个文本文件有4列(制表符分隔)。每个文件大约有2000行。使用Python,我如何创建一个看起来像这样的新文件?
file1column1 file1column4 file2column4 file3column4 ...fileNcolumn4
感谢。
这是我试过的代码:
file_lists = ['file1.data', 'file2.data']
temp_data = []
for a_file in file_lists:
file_h = open(a_file)
a_list = []
csv_reader = csv.reader(file_h, delimiter='\t')
for row in csv_reader:
if afile == "file1.data":
a_list.extend([row[0], row[3]])
else:
a_list.append(row[3])
temp_data.append((n for n in a_list))
file_h.close()
with open('output.data', 'w') as output_file:
csv_writer = csv.writer(output_file, delimiter='\t')
for row in list(zip(*temp_data)):
csv_writer.writerow(row)
output_file.close()
礼貌:Combining columns of multiple files in one file - Python
我的结果如下:
file1column1 file2column4
file1column4 file2column4
file1column1 file2column4
file1column4 file2column4
答案 0 :(得分:0)
怎么样:
file_lists = [('file1.data', 1), ('file1.data', 3), ('file2.data',3)]
temp_data = []
for a_file in file_lists:
file_h = open(a_file[0])
a_list = []
csv_reader = csv.reader(file_h, delimiter='\t')
for row in csv_reader:
a_list.append(row[a_file[1]])
temp_data.append((n for n in a_list))
file_h.close()
with open('output.data', 'w') as output_file:
csv_writer = csv.writer(output_file, delimiter='\t')
for row in list(zip(*temp_data)):
csv_writer.writerow(row)
当您使用...作为
时,您不需要关闭文件