我刚刚开始研究Python,我一直在尝试从Python运行一个外部可执行文件。
我有一个用Fortran编写的程序的可执行文件。假设可执行文件的名称是flow.exe。我的可执行文件位于C:\Documents and Settings\flow_model
。我尝试了os.system和popen两种命令,但到目前为止我还不能让它工作。下面的代码似乎打开了命令窗口,但它不会执行模型。
# Import system modules
import sys, string, os, arcgisscripting
os.system("C:/Documents and Settings/flow_model/flow.exe")
我该怎么解决?
如果使用Python2.7或更高版本(特别是在Python3.5之前),则可以使用以下内容:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
运行args描述的命令。等待命令完成,然后返回returncode属性。subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
使用参数运行命令。等待命令完成。如果返回代码为零,则返回,否则将引发CalledProcessError。CalledProcessError对象将在return code属性中包含返回代码示例:
subprocess.check_call([r"C:\pathToYourProgram\yourProgram.exe", "your", "arguments", "comma", "separated"])
这是指向文档的链接:http://docs.python.org/3.2/library/subprocess.html
对于Python3.5+,现在可以在许多情况下使用run():https://docs.python.org/3.5/library/subprocess.html#subprocess.run
那些空白真的很麻烦。尝试
os.chdir('C:/Documents\ and\ Settings/')
,然后是os.system
,subprocess
方法的相对路径,或者其他。。。如果试图绕过路径障碍中的空白区域的最大努力一直失败,那么我的下一个最佳建议是避免在关键路径中出现空白。你不能把一个空白的目录,复制关键的
.exe
文件,然后尝试这个?那些破坏性的空间对你的健康是绝对必要的吗。。。?最简单的方法是:
它起作用了;我试过了。
相关问题 更多 >
编程相关推荐