我可以使用dictReader来摄取lsof和ps的输出吗?

时间:2016-11-20 17:19:12

标签: python python-2.7 csv

标准的Unix实用程序(如lsofps)以固定宽度格式生成输出,其标题应易于以编程方式提取。

唉,How to efficiently parse fixed width files?的现有答案要求我提前指定列宽,而不是从标题行推断。

那么,将pslsof(和他们的同类)的输出摄取到Python中的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这是我在切换到psutil之前使用的内容:

import subprocess

def lsof ():
    with subprocess.popen(["lsof"],stdout=subprocess.PIPE) as fd:
        header = fd.readline().split()
        for line in fdout:
            return [dict(zip(header,line.split())) for line in fd]

警告:这会忽略lsof输出字段中空格的可能性!