我已经弄清楚如何使用 call() 让我的 python 脚本运行命令:
import subprocess
mycommandline = ['lumberjack', '-sleep all night', '-work all day']
subprocess.call(mycommandline)
这可行,但有一个问题,如果用户的命令路径中没有 lumberjack 怎么办?如果将 lumberjack 放在与 python 脚本相同的目录中,那么它会起作用,但脚本如何知道它应该查找 lumberjack?我想如果存在命令未找到错误,那么 lumberjack 将不会出现在命令路径中,脚本可以尝试找出其目录是什么,并在那里查找 lumberjack,最后警告用户将 lumberjack 复制到其中之一如果在这两个地方都没有找到的话。我如何找出错误消息是什么?我读到 check_call() 可以返回错误消息和有关 returncode 属性的信息。我找不到有关如何使用 check_call() 和 returncode、消息是什么或如何判断消息是否未找到命令的示例。
我是否以正确的方式处理这件事?
一个简单的片段:
try:
subprocess.check_call(['executable'])
except subprocess.CalledProcessError:
pass # handle errors in the called executable
except OSError:
pass # executable not found
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)