我有两个名为input.csv的文件(由一列 count 组成)和output.csv(由一列 id 组成)。
我想在 id 列之后的output.csv中粘贴 count 列。
这是我的代码:
with open ("/home/julien/input.csv", "r") as csvinput:
with open ("/home/julien/excel/output.csv", "a") as csvoutput:
writer = csv.writer(csvoutput, delimiter = ";")
for row in csv.reader(csvinput, delimiter = ";"):
if row[0] != "":
result = row[0]
else:
result = ""
row.append(result)
writer.writerow(row)
但它不起作用。
我一直在寻找问题好几个小时,但我没有解决方案。你有什么技巧可以解决我的问题吗? 谢谢!于连
答案 0 :(得分:1)
完成
答案 1 :(得分:1)
您需要使用三个文件,两个用于阅读,一个用于写入。 这应该有用。
import csv
in_1_name = "/home/julien/input.csv"
in_2_name = "/home/julien/excel/output.csv"
out_name = "/home/julien/excel/merged.csv"
with open(in_1_name) as in_1, open(in_2_name) as in_2, open(out_name, 'w') as out:
reader1 = csv.reader(in_1, delimiter=";")
reader2 = csv.reader(in_2, delimiter=";")
writer = csv.writer(out, delimiter=";")
for row1, row2 in zip(reader1, reader2):
if row1[0] and row2[0]:
writer.writerow([row1[0], row2[0]])
您为每列写下行:
row.append(result)
writer.writerow(row)
Dedent最后一行只写一次:
row.append(result)
writer.writerow(row)
答案 2 :(得分:0)
如果有人给了两个表,那么通过使用每个表的第一列来合并它们非常容易。使用我的库pyexcel
,您可以像合并表一样进行合并:
>>> from pyexcel import Reader,Writer
>>> f1=Reader("input.csv", delimiter=';')
>>> f2=Reader("output.csv", delimiter=';')
>>> columns = [f1.column_at(0), f2.column_at(0)]
>>> f3=Writer("merged.csv", delimiter=';')
>>> f3.write_columns(columns)
>>> f3.close()