簡體   English   中英

python將dictreader寫入csv文件

[英]python writing dictreader to csv file

我正在使用python 2.4並嘗試將unix last命令的值導出到csv文件。 我無法弄清楚如何將其實際寫入每一行到csv文件,任何幫助將不勝感激!

import csv

def check(user,logfile,name):
    logfile.write('********' + name + '*********\n')
    g = subprocess.Popen(["last",user], stdout=subprocess.PIPE)
    stdout, stderr = g.communicate()
    reader = csv.DictReader(stdout.splitlines(),
                            delimiter=' ', skipinitialspace=True,
                            fieldnames=['id', 'pts', 'cpu',
                                        'day', 'month', 'date',
                                        'time', 'dash', 'off',
                                        'loggedin', 'test1', 'test2'])

    writer = csv.writer(open('dict.csv','wb'))
    for row in reader:
        writer.writerow(row)

您需要使用csv.DictWriter()代替(具有匹配的字段名),或將字典行變成一個序列:

writer.row([value for key, value in sorted(row.items())])

例如,將輸出按其鍵排序的值。

使用DictWriter可能很簡單:

writer = csv.DictWriter(open('dict.csv','wb'), fieldnames=reader.fieldnames)

它將以與DictReader()類所期望的順序相同的順序寫入完全相同的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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