当我从python运行可执行文件并传递争论时我什么都没得到

时间:2017-06-09 15:29:38

标签: python sys matlab-compiler

以下是我想要使用的程序的链接:http://www.cs.jhu.edu/~misha/Code/ShapeSPH/ShapeDescriptor/我希望通过python运行以下命令

import subprocess
args = ['C:\\Path\\ShapeDescriptor.exe', "--in", "x.ply", "--out", "x.txt" ]
subprocess.call(args, shell=True) 

但是当我运行它时,我会得到类似的东西:

#QNAN0 1.#QNAN0 1.#QNAN0 -1.#IND00

我可以从命令提示符下运行ShapeDescriptor.exe:

ShapeDescriptor.exe --in x.ply -out x.txt

并获取所需的带有数字的x.txt文件,例如:

0.003294 0.003386 0.003426 0.001029

我如何解决问题?

2 个答案:

答案 0 :(得分:1)

如果拆分不能解决问题,您可能还想使用cwd参数提供工作目录。也许x.txt是在意想不到的位置创建的。

答案 1 :(得分:0)

尝试使用subprocess.call(args,*,stdin = None,stdout = None,stderr = None,shell = False)和options或subprocess.check_call(args,*,stdin = None,stdout = None, stderr = None,shell = False)。

不同之处在于,如果进程返回错误代码,check_call将获得CalledProcessError。

另一种策略是使用chdir函数来更改执行exe文件的当前目录berofe,如下所示:

导入os

os.chdir(' c:\ documents and settings \ programs \')