2
我使用python 2.4並試圖將unix last命令的值導出到csv文件。我無法弄清楚如何將它實際寫入每一行到一個csv文件,任何幫助將不勝感激!python寫dictreader到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)
您還需要明確寫入標頭: writer.writeheader() 否則不會寫入標頭。 – Bolaka
@Bolaka:是的,但不是每個用例都需要一個標題行。 OP在這裏爲'DictReader'使用了一個明確的'fieldnames'參數,這意味着輸入文件中也沒有標題行。 –
是true,並非每個usecase都需要一個標題行。它就是 - writer = csv.DictWriter(open('dict.csv','wb'),fieldnames = reader.fieldnames) - 給我的印象是它也會寫出標題。所以我認爲答案應該提到,如果有人想要寫頭,添加 - writer.writeheader() – Bolaka