0
像lsof
和ps
这样的标准Unix工具以固定宽度的格式产生输出,其头部应该易于以编程方式摄取。我可以使用dictReader来获取lsof和ps的输出吗?
唉,How to efficiently parse fixed width files?的现有答案要求我提前指定列宽,而不是从标题行推断。
那么,将ps
和lsof
(和他们之流)的输出提取到Python的正确方法是什么?
像lsof
和ps
这样的标准Unix工具以固定宽度的格式产生输出,其头部应该易于以编程方式摄取。我可以使用dictReader来获取lsof和ps的输出吗?
唉,How to efficiently parse fixed width files?的现有答案要求我提前指定列宽,而不是从标题行推断。
那么,将ps
和lsof
(和他们之流)的输出提取到Python的正确方法是什么?
这是我用,直到我切换到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
输出领域的可能性!
如果[psutil](https://pypi.python.org/pypi/psutil)涵盖了你想要的内容,请不要查看系统实用程序的输出... –