簡體   English   中英

Python附加到csv文件,沒有白行,也沒有重復的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM