0

Linux マシンで起動している最初のインターフェイスを取得したいと考えています。私は使用subproces しており、次のコードがあります。

def get_eth_iface():
    awk_sort = subprocess.Popen( ["-c", "ifconfig | cut -d ' ' -f 1 | grep eth | head -n 1" ], stdin= subprocess.PIPE, shell=True )
    awk_sort.wait()
    output = awk_sort.communicate()[0]

ただし、この結果はコンソールに出力され、変数には保存されません。これを変数にリダイレクトするにはどうすればよいですか?

4

2 に答える 2

1

http://docs.python.org/2/library/subprocess.html :

同様に、結果のタプルで None 以外のものを取得するには、stdout=PIPEand/orstderr=PIPEも指定する必要があります。

良いアドバイスのように聞こえます。追加stdout=subprocess.PIPEして、何が起こるか見てみましょう。

于 2013-01-21T11:47:06.793 に答える
1

にリダイレクトstdoutsubprocess.PIPEます。以下は私にとってはうまくいきます。

import subprocess
def get_eth_iface():
    awk_sort = subprocess.Popen( ["dir" ], stdin= subprocess.PIPE, stdout= subprocess.PIPE)
    awk_sort.wait()
    output = awk_sort.communicate()[0]
    print output.rstrip()
get_eth_iface()
于 2013-01-21T11:51:48.043 に答える