【问题标题】:Write psutil query result to csv将 psutil 查询结果写入 csv
【发布时间】:2019-07-16 18:37:29
【问题描述】:

我还是 python 新手。我正在使用 psutil 文档的配方按名称查找进程。现在,我正在尝试将结果保存到 csv 文件中。但是,我坚持用正确的格式编写 csv。

我尝试对 3 个字符串对象使用 zip(),如下所示:

rows = zip(processCreationTime, processName, processCmd)
with open('/var/log/supervisor_process.log', 'w') as f:
    writer = csv.writer(f)
    for row in rows:
        writer.writerows(rows)

整个脚本;

import psutil
import time
import csv

def find_procs_by_name(name):
    "Return a list of processes matching 'name'."
    ls = []
    for p in psutil.process_iter(attrs=['name']):
        if p.info['name'] == name:
            ls.append(p)
    return ls

def main():
    listProc = find_procs_by_name('supervisord')

    if len(listProc) > 0:
        for elem in listProc:
            processName = elem['name']
            processCreationTime = time..strftime('%Y-%m-%d', time.localtime(elem['create_time']))
            processCmd = elem['cmdline']['0']
            print((processCreationTime, processName, processCmd))
            # CSV code here
            ###########
    else:
        print('Not found')

if __name__ == '__main__':
    main()

csv文件的内容应该和不带括号的print语句内容一致:

'2019-06-12', 'supervisord', '/usr/bin/python'
'2019-06-12', 'supervisord', '/usr/bin/python'
'2019-07-15', 'supervisord', '/usr/bin/python'

我对数据结构的经验很少,因此欢迎提出任何建议。谢谢。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    最后,我通过阅读更多文档并查看 writer 函数的一些示例来解决这个问题。即如何在每个循环之后将字符串“附加”到每一行。

    def main():
        # Create and/or clear existing file content then add headers
        with open('/var/log/supervisor_process.log', 'w+') as f:
            header = csv.writer(f)
            header.writerow(['hostname','create_time','name','cmdline'])
       ....
            # CSV code
            with open('/var/log/supervisor_process.log', 'a') as f:
                writer = csv.writer(f)
                writer.writerow([myhost, processCreationTime, processName, processCmd])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多