Gab*_*ira 7 shell python process
我正在尝试找到一种方法来在执行之前检查 shell 命令是否存在。
例如,我将执行命令 ack-grep。所以,我正在尝试这样做:
导入子流程
from subprocess import PIPE
cmd_grep = subprocess.Popen(["ack-grep", "--no-color", "--max-count=1", "--no-group", "def run_main", “../cgedit/”],stdout=PIPE,stderr=PIPE)
比,如果我执行
cmd_grep.stderr.read()
我收到像输出一样的“”。但我的路径上没有 ack-grep 命令。那么,为什么 Popen 没有将错误消息放在我的 .stderr 变量上?
另外,有没有更简单的方法来完成我想做的事情?
您可以使用Python 3 下的subprocess模块或Python 2 下的命令模块,如下所示:
状态,结果 = subprocess.getstatusoutput("ls -al")
状态,结果=commands.getstatusoutput(“ls -al”)
然后测试 的值status
。
来自网站的示例:
>>> 导入子流程 >>> subprocess.getstatusoutput('ls /bin/ls') (0, '/bin/ls') >>> subprocess.getstatusoutput('cat /bin/junk') (256, 'cat: /bin/junk: 没有这样的文件或目录') >>> subprocess.getstatusoutput('/bin/junk') (256, 'sh: /bin/junk: 未找到')
归档时间: |
|
查看次数: |
13659 次 |
最近记录: |