在Python中运行外部程序(可执行文件)?

2024-04-20 14:00:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始研究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")

我该怎么解决?


Tags: and代码命令程序名称可执行文件modelsettings
3条回答

如果使用Python2.7或更高版本(特别是在Python3.5之前),则可以使用以下内容:

import subprocess
  • 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"])

In regular Python strings, the \U character combination signals a extended Unicode code point escape.

这是指向文档的链接: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.systemsubprocess方法的相对路径,或者其他。。。

如果试图绕过路径障碍中的空白区域的最大努力一直失败,那么我的下一个最佳建议是避免在关键路径中出现空白。你不能把一个空白的目录,复制关键的.exe文件,然后尝试这个?那些破坏性的空间对你的健康是绝对必要的吗。。。?

最简单的方法是:

import os
os.startfile("C:\Documents and Settings\flow_model\flow.exe")

它起作用了;我试过了。

相关问题 更多 >