以下是我想要使用的程序的链接: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
我如何解决问题?
答案 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 \')