use*_*219 2 python csv python-2.4
我正在使用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)
Run Code Online (Sandbox Code Playgroud)
您需要使用a csv.DictWriter()代替(具有匹配的字段名称),或将字典行变成序列:
writer.row([value for key, value in sorted(row.items())])
Run Code Online (Sandbox Code Playgroud)
例如,将输出按其键排序的值。
使用a DictWriter可以很简单:
writer = csv.DictWriter(open('dict.csv','wb'), fieldnames=reader.fieldnames)
Run Code Online (Sandbox Code Playgroud)
它将按照您的DictReader()班级期望的顺序,以完全相同的顺序写入完全相同的字段。
| 归档时间: |
|
| 查看次数: |
3818 次 |
| 最近记录: |