从Python调用DOS可执行文件

时间:2012-04-30 05:03:41

标签: python

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

谢谢!

CODE

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

更新  它的工作原理是将.py脚本文件放到包含dosefile.exe的折叠中。有没有办法让它在没有迁移.py文件的情况下工作?

搞清楚。如果.py文件在其他地方

,我需要使用os.chdir()来更改工作文件夹

2 个答案:

答案 0 :(得分:1)

尝试将其称为系统调用

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

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

答案 1 :(得分: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带来的更强大的工具 你以后不会后悔的。

相关问题