我有2个csv文件:
output.csv有5列标题.
output1.csv有大约40列不同类型的数据.
我需要将output1.csv的所有内容追加到output.csv.我怎样才能做到这一点?
有人可以给我一个关于如何去做的提示吗?
我有以下代码:
reader=csv.DictReader(open("test.csv","r"))
allrows = list(reader)
keepcols = [c for c in allrows[0] if all(r[c] != '0' for r in allrows)]
print keepcols
writer=csv.DictWriter(open("output.csv","w"),fieldnames='keepcols',extrasaction='ignore')
writer.writerows(allrows)
with open("test1.csv","r") as f:
fields=next(f).split()
# print(fields)
allrows=[]
for line in f:
line=line.split()
row=dict(zip(fields,line))
allrows.append(row)
# print(row)
keepcols = [c for c in fields if any(row[c] != '0' for row in allrows)]
print keepcols
writer=csv.DictWriter(open("output1.csv","w"),fieldnames=keepcols,extrasaction='ignore')
writer.writerows(allrows)
Run Code Online (Sandbox Code Playgroud)
test.csv生成output.csv
test1.csv生成output1.csv
即时通讯试图看看我是否可以让两个文件在同一个文件中生成我的输出..
如果我正确理解你的问题,你想创建一个包含41列的csv - 来自output.csv的1,后面是output1.csv中的40.我假设他们有相同的行数(如果没有 - 什么是必要的行为?)
尝试使用csv模块:
import csv
reader = csv.reader(open('output.csv', 'rb'))
reader1 = csv.reader(open('output1.csv', 'rb'))
writer = csv.writer(open('appended_output.csv', 'wb'))
for row in reader:
row1 = reader1.next()
writer.writerow(row + row1)
Run Code Online (Sandbox Code Playgroud)
如果您的csv文件使用特殊分隔符或引号进行格式化,则可以使用csv.reader和csv.writer对象的可选关键字参数.有关详细信息,请参阅Python的csv模块文档 ...
编辑:按照建议添加'b'标志.
归档时间: |
|
查看次数: |
17700 次 |
最近记录: |