从python子进程运行linux grep命令

我知道已经有关于如何在python中使用子进程来运行linux命令的文章,但是我只是无法获得正确的语法.请帮忙.这是我需要运行的命令…

/sbin/ifconfig eth1 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

好的,这是我目前遇到的语法错误…

import subprocess
self.ip = subprocess.Popen([/sbin/ifconfig eth1 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'])

任何帮助,不胜感激.

解决方法:

这已经被很多遍了.但这是效率低下的后处理的简单纯Python替换.

from subprocess import Popen, PIPE
eth1 = subprocess.Popen(['/sbin/ifconfig', 'eth1'], stdout=PIPE)
out, err = eth1.communicate()
for line in out.split('\n'):
    line = line.lstrip()
    if line.startswith('inet addr:'):
        ip = line.split()[1][5:]
上一篇:如果我不在subprocess.Popen()中使用stdout = subprocess.PIPE,有什么区别?


下一篇:python – 将变量传递给Subprocess.Popen