如何从命令行输出到脚本中的条件?

时间:2012-11-11 13:46:36

标签: python linux

我试过了:

import os

if os.system('somecommand') == 'output from command':

    do_something()

但它没有奏效。我该怎么做?我应该使用什么库?

当我使用下面的子流程解决方案时,我得到了这个错误代码:

Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

1 个答案:

答案 0 :(得分:3)

os.system()的返回值是进程的退出代码,而不是它输出到stdin的任何内容。您想要使用subprocess module代替:

import subprocess

if subprocess.check_output('somecommand') == 'output from command':