如何在Python中运行需输入文件的exe程序?
在Python中运行需读取输入文件的EXE程序
为什么之前的尝试失败
你用os.system("aaa.exe", "bbb.dat")失败是因为os.system只接受单个字符串参数,不能拆分传参;另外要注意文件路径的正确性——DOS命令里的\bbb.dat写法有问题,如果bbb.dat和aaa.exe在同一目录,应该用相对路径bbb.dat,如果是绝对路径要写全路径。
两种可行方案
方案1:使用os.system
把命令拼成完整的字符串,注意路径格式:
import os # 若exe和dat在同一目录,直接拼接命令 os.system("aaa.exe bbb.dat") # 若不在同一目录,写完整路径(Python中用双反斜杠或原始字符串避免转义) os.system(r"C:\Users\Program\Siimulation\Input\aaa.exe C:\Users\Program\Siimulation\Input\bbb.dat")
方案2:使用subprocess.run(推荐)
subprocess是Python官方推荐的替代os.system的模块,参数传递更灵活,还能捕获执行状态和输出:
import subprocess # 同一目录下直接运行 subprocess.run(["aaa.exe", "bbb.dat"], check=True) # 切换到exe所在目录运行(更简洁,不用写全路径) subprocess.run( ["aaa.exe", "bbb.dat"], cwd=r"C:\Users\Program\Siimulation\Input", check=True ) # 若dat文件是绝对路径的情况 subprocess.run( ["aaa.exe", r"C:\Users\Program\Siimulation\Input\bbb.dat"], cwd=r"C:\Users\Program\Siimulation\Input", check=True )
check=True会在exe运行失败时抛出异常,方便排查错误;- 若需要捕获exe的输出内容,可添加
capture_output=True参数。
关键注意点
- 路径要准确:如果exe或dat不在当前Python脚本的工作目录,要么写完整路径,要么用
cwd参数切换到目标目录; - 路径转义:Windows路径里的
\要写成\\,或者用原始字符串(前缀加r)避免转义错误; - 权限足够:确保Python脚本有运行该exe和读取dat文件的权限。
内容的提问来源于stack exchange,提问作者oceanocean
相关产品推荐
相关产品推荐

