当我从 python 运行可执行文件并传递参数时,我什么也得不到



这是我要使用的程序的链接: 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

我该如何解决问题?

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

尝试将subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False(与选项一起使用或subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False(。

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

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

导入操作系统

os.chdir( 'C:\Documents and Settings\programs\' (

相关内容

最新更新