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=PIPE和/或stderr=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 回答