我想获得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]
但是这个结果将打印到控制台,不会保存到变量中。如何将其重定向到变量?
答案 0 :(得分:1)
http://docs.python.org/2/library/subprocess.html:
同样,要在结果元组中获取除None之外的任何内容,您 需要提供
stdout=PIPE
和/或stderr=PIPE
。
听起来像个好建议。添加stdout=subprocess.PIPE
,看看会发生什么。
答案 1 :(得分:1)
将stdout
重定向到subprocess.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()