1

对不起,如果这个问题已经被问过很多次了。我有一个 DOS .exe 文件。通过在 Windows 中双击它可以很好地工作,这会在工作文件夹中生成一些输出文件。但是,我需要从 Python 调用它。我尝试了以下命令(subprocess.Popen 和 os.system),但它只打开一个 DOS 窗口而不保存输出文件。那么有人可以给我一个提示吗?

谢谢!

代码

a=subprocess.Popen(r"I:/dosefile.exe")
a1=os.system(r"I:/dosefile.exe")

更新 它通过将.py脚本文件放入包含dosefile.exe的折叠中来工作。有没有办法让它在不迁移 .py 文件的情况下工作?

想办法。如果 .py 文件在其他地方,我需要使用 os.chdir() 更改工作文件夹

4

2 回答 2

1

尝试将其称为系统调用

import os
os.system('I:/dosefile.exe')

然后解析它创建的输出文件。

于 2012-04-30T05:08:58.037 回答
1

更好的方法是使用:

os.chdir('I:')

然后你可以使用 subrprocess.
os.system 非常有限,应该首选 subprocess.Popen。

更好的是使用 subprocess.Popen 关键字“cwd”,它设置工作目录。

subprocess.Popen(self, args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None,\
preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, \
startupinfo=None, creationflags)

Python 是一种易于练习的语言,像 os.system 这样的东西确实有效,因为 Python 非常宽容(不像 C ......)。但是,我真的建议努力学习 Python 附带的更强大的工具。
以后你不会后悔的。

于 2012-04-30T07:10:47.280 回答