[英]Python append to csv file without white rows and without repeating columns
嗨,我有問題。
import csv
test = ['a','b','c','d','e']
for t in test:
with open('names.csv', 'a') as csvfile:
fieldnames = ['acol', 'bcol', 'ccol']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'acol': t, 'bcol': t, 'ccol': t})
“ names.csv”結果
艾可·布科爾
aa
艾可·布科爾
bbb
艾可·布科爾
抄送
艾可·布科爾
ddd
艾可·布科爾
ee e''
有白線和連續重復我想要沒有白色行且沒有連續重復的結果
你可以試試這個
import csv
test = ['a','b','c','d','e']
with open('names.csv', 'wb') as csvfile:
fieldnames = ['acol', 'bcol', 'ccol']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for t in test:
writer.writerow({'acol': t, 'bcol': t, 'ccol': t})
import csv
test = ['a','b','c','d','e']
for i,t in enumerate(test):
with open('names.csv', 'a') as csvfile:
fieldnames = ['acol', 'bcol', 'ccol']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
if i == 0:
writer.writeheader()
writer.writerow({'acol': t, 'bcol': t, 'ccol': t})
Divakar提供的另一種解決方案更優雅,更快捷,因為您不必在每個循環中都打開文件。
用這個
import csv
test = ['a','b','c','d','e']
for t in test:
with open('names.csv', 'w') as csvfile:
fieldnames = ['acol', 'bcol', 'ccol']
writer = csv.writer(csvfile)
writer.writerow(fieldnames)
for elem in test:
writer.writerow(elem * 3)
這是我的names.csv
輸出,沒有任何換行符
acol,bcol,ccol
a,a,a
b,b,b
c,c,c
d,d,d
e,e,e
import csv
test = ['a','b','c','d','e']
with open('names.csv', 'a') as csvfile:
fieldnames = ['acol', 'bcol', 'ccol']
writer = csv.DictWriter(csvfile,delimiter=' ',fieldnames=fieldnames,lineterminator=' ')
writer.writeheader()
for t in test:
writer.writerow({'acol': t, 'bcol': t, 'ccol': t})
您正在循環中編寫標頭,因此它們被重寫了很多次,默認情況下,行終止符為'\\ n',這在行尾給出了新的空格。這給出了您在上面引用的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.