我正在尝试从 Python 中运行一些外部可执行代码,然后使用输出。我正在使用的代码需要一个外部文件并返回一个数字(该文件中编码的图像数)。当我从命令行运行时,我看到以下内容:
me@ubuntu:~/nist/hsfsys/bin$ ./nummis /usr/local/hsfsys/data/by_class/4a/train_4a.mis
3962
据我所知,3962 是正确的输出
但是,当我尝试在 Python 中使用 subprocess 时,出现以下错误:
me@ubuntu:~/nist/hsfsys/bin$ python
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.check_output(["./nummis","/usr/local/hsfsys/data/by_class/4a/train_4a.mis"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['./nummis', '/usr/local/hsfsys/data/by_class/4a/train_4a.mis']' returned non-zero exit status 32
>>> subprocess.call(["./nummis","/usr/local/hsfsys/data/by_class/4a/train_4a.mis"])
3962
32
我应该如何解释这个“非零退出状态 32”?如果有问题,为什么我在命令行上看不到?如果一切正常,为什么 Python 会抱怨?我怎样才能让它停止抱怨?