2016-11-20 75 views
0

lsofps这样的标准Unix工具以固定宽度的格式产生输出,其头部应该易于以编程方式摄取。我可以使用dictReader来获取lsof和ps的输出吗?

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

那么,将pslsof(和他们之流)的输出提取到Python的正确方法是什么?

+1

如果[psutil](https://pypi.python.org/pypi/psutil)涵盖了你想要的内容,请不要查看系统实用程序的输出... –

回答

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输出领域的可能性!

相关问题