【发布时间】:2019-05-22 07:24:50
【问题描述】:
我对 python 很陌生。虽然我已经阅读了数百篇关于将列从一个 csv 复制到另一个 csv 的帖子,但我仍然无法得到正确的结果。
我想要:1. 将第 5 列从文件 a 复制到文件 b。 2. 每行后插入3个空白行
例如,如果第 5 列有:
1
2
3
我想要:
1
blank
blank
blank
2
blank
blank
blank
3
blank
blank
blank
我写了一些东西,但不确定它是否正确:
with open (score_data,'rb') as a, open(new_score,'wb') as b:
ca=csv.reader(a)
ca_rows=list(a)
cb=csv.writer(b)
for line, row in enumerate(a,start=1):
b.writerow([row[0],row[0]])
if line % 4 == 0:
b.writerrow([])
谢谢你帮助我
编辑: 谢谢穆斯特曼。我想知道如何在复制原始数据后添加三个空白行:
with open (score_data) as a, open(new_score,'w') as b:
b.write(next(a))
ca=csv.reader(a, delimiter=',')
ca_rows=list(a)
cb=csv.writer(b)
for row in range(len(ca_rows)):
cb.writerow(([" "]*3)+[ca_rows[row][-2]]) # replace -2 with actual col if delimiter is working
cb.writerow([" "]*3)
但是,数据已复制到新文件的第 4 列。我希望将数据复制到新文件的第 6 列。任何想法?谢谢
另一个问题:我修改后的代码能够复制数字但不能复制任何单词。 例如,如果我的输入文件显示:
1
2
MO
3
现在输出显示:
1
blank
blank
blank
2
blank
blank
blank
O
blank
blank
blank
知道为什么吗?谢谢
【问题讨论】:
标签: python-3.x csv