我正在编写一个 Python 程序来使用 Popen 调用本地二进制文件来捕获其输出。我将目录更改为os.chdir
我已经验证该文件在那里。但是,以下代码引发“找不到文件”异常。
谁能告诉我我做错了什么?从不在我的 $PATH 中的目录运行程序是否需要做一些特殊的事情?提前致谢。
try:
os.chdir('/home/me')
p = sub.Popen(['./exec', '--arg', 'arg1'], cwd=os.getcwd(), stdout=sub.PIPE)
out, err = p.communicate()
print("done")
except OSError as e:
print("error %s" % e.strerror)
Note 本节 http://docs.python.org/2/library/subprocess.html#popen-constructor文档(强调我的):
如果 cwd 不是 None,则子进程的当前目录将更改为
cwd 在执行之前。注意这个目录不考虑
搜索可执行文件时,因此无法指定程序的路径
相对于cwd.
尝试使用绝对路径Popen
.
p = sub.Popen(['/home/me/exec', '--arg', 'arg1'], stdout=sub.PIPE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)