标准的Unix实用程序(如lsof
和ps
)以固定宽度格式生成输出,其标题应易于以编程方式提取。
唉,How to efficiently parse fixed width files?的现有答案要求我提前指定列宽,而不是从标题行推断。
那么,将ps
和lsof
(和他们的同类)的输出摄取到Python中的正确方法是什么?
答案 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
输出字段中空格的可能性!