从Python脚本执行命令

时间:2011-12-05 12:09:35

标签: python build-automation

我正致力于开发板闪存过程的自动化。 我有一个命令行闪存工具,它允许我执行闪存板所需的各种命令。

我正在尝试使用Python脚本进行自动化。 我使用subProcess.Popen启动.exe然后我需要执行其他命令。 我已经在sudo代码下面发布了:

  1. process = subprocess.Popen(filename.exe, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  2. process.communicate(arg) 我也试过
  3. subProcess.stdin(arg)
  4. 但我无法获得理想的结果。 我尝试创建批处理文件然后从Python运行它,但也没有运气。它只是启动exe然后关闭它。

    任何人都可以帮我解决这个问题。我刚开始使用Python脚本,所以请帮帮我。

4 个答案:

答案 0 :(得分:0)

你可以使用os.system()(http://docs.python.org/library/os.html#os.system)从python中执行另一个程序。

答案 1 :(得分:0)

从你的问题猜测,你正试图执行一系列命令吗? 例如:

filename.exe arg1 arg2
file2.exe arg3 arg4

最简单的方法是:

import subprocess
subprocess.check_output(['filename.exe', 'arg1', 'arg2'])
subprocess.check_output(['file2.exe', 'arg3', 'arg4'])

subprocess.check_output

的文档

答案 2 :(得分:0)

如何简单地将参数附加到命令字符串,如下所示:

p = subprocess.Popen('%s %s' % (filename, args), shell=True)
sts = os.waitpid(p.pid, 0)[1]

答案 3 :(得分:0)

您应该删除" shell = True",因为您可能不需要通过shell运行您的exe程序。 对于论点,它就是这样:

process = subprocess.Popen(['filename.exe', arg1, arg2], stdin=subprocess.PIPE, stdout=subprocess.PIPE)