我是 python 新手,我已经到了从大型文本文件创建多个 csv 文件的地步。所以我的 csv 如下所示。
CSV1
美国广播公司,1
防御,2
GHI, 3
CSV2
美国广播公司,4
防御,5
GHI, 6
等等最多15个csv文件。
我想创建一个如下所示的组合 csv 文件。
ABC, 1, 4
防御, 2, 5
GHI, 3, 6
任何有关如何执行此操作的指示都值得赞赏。
假设所有 CSV 文件的长度相同,并且以相同的顺序包含相同的第一列,这样的事情可能对您有用:
list_of_files = ['csv1.csv', 'csv2.csv', 'csv3.csv']
# Use the first file as a template
with open(list_of_files[0], 'r') as f:
output_text = [line.strip() for line in f]
# Append the values to the end of the lines
for fn in list_of_files[1:]:
with open(fn, 'r') as f:
for i, line in enumerate(f):
key, value = line.strip().split(",")
output_text[i] += "," + value
# Dump result to new csv
with open("result.csv", 'w') as f:
f.write("\n".join(output_text))
import csv
from collections import defaultdict
csvs = ["data1.csv", "data2.csv"]
for file in csvs:
for line in csv.reader(open(file)):
d.setdefault(line[0], []).append(line[1])
with open("result.csv", "w") as f:
wrt = csv.writer(f)
wrt.writerows([[k] + v for k, v in d.items()])