2016-11-20 8 views
0

lsofpsのような標準のUnixユーティリティは、プログラムで取り込みが容易なヘッダを持つ固定幅形式の出力を生成します。dictReaderを使用してlsofとpsの出力を取り込むことはできますか?

ああ、既存の回答How to efficiently parse fixed width files?では、ヘッダー行から推測するのではなく、事前に列幅を指定する必要があります。

pslsof(およびそのilk)の出力を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出力フィールドにスペースの可能性を無視します!

関連する問題