如何从Python中使用cmd.exe打开程序?

3

我正在使用Python 3.3,我的代码需要打开cmd.exe并运行以下参数。在cmd.exe中,应该运行以下命令:

C:\Program Files (x86)\GlobalMapper15>global_mapper.exe script.gms variable

我看到了不同的答案,但使用subprocess.call我只能打开cmd.exe或global_mapper.exe。我没有办法在cmd.exe中得到上面的行。

到目前为止我尝试过:

#import subprocess
import os
os.system("cmd.exe C:\Program Files (x86)\GlobalMapper15\global_mapper.exe script.gms")
#subprocess.call(["cmd.exe C:\Program Files (x86)\GlobalMapper15\global_mapper.exe", "script.gms"])

两者都没有很好地运行。

当然,如果该行也能执行,那就太好了。有人可以帮助我实现这个吗?

谢谢大家,


@Kevin 你可以通过运行以下简单的代码来测试:import subprocess subprocess.call(["cmd.exe"])这将打开 cmd.exe。不过,这还不够,我仍然需要在该行上添加所有额外的参数。 - Robert
也许这可以帮助你。https://dev59.com/SnVD5IYBdhLWcg3wGXlI - Eduardo Pino
当您尝试将所有额外参数添加到subprocess.call时发生了什么?到目前为止,您还没有发布任何代码,因此看起来您只是在要求我们为您编写项目。 - Kevin
@ EduardoPino 谢谢,我尝试跟随那段代码,但是我卡住了。我会继续努力的。 - Robert
@Kevin,我在请求帮助完成这个任务。我已经发布了打开其中一个的基本用法。我尝试过subprocess.call(["cmd.exe", "C:\Program Files (x86)\GlobalMapper15\global_mapper.exe script.gms"]),但它只打开了带有以下行的cmd.exe:C:\Python33>。由于我是新手,所以我正在逐步学习它。我之所以问是因为我尝试了几个小时,卡住了,而不是因为我想让你替我写这个。现在有些例子对我来说太难理解了。 - Robert
显示剩余3条评论
3个回答

8
在指定目录下运行global_mapper.exe
#!/usr/bin/env python
from subprocess import call

dir = r"C:\Program Files (x86)\GlobalMapper15"
cmdline = "global_mapper.exe script.gms variable"
rc = call(cmdline, cwd=dir) # run `cmdline` in `dir`

如果你想在新的控制台窗口中启动命令:

rc = call("start cmd /K " + cmdline, cwd=dir, shell=True)

非常感谢您让它变得清晰明了。我现在明白它是如何工作的了。天哪,编程确实可以加速事情进展。 谢谢大家, - Robert

2
也许可以用这个:
import os
os.system("program.exe -parameter")

1
您可以创建一个 .bat 文件并将其命名为。
dir = r"C:\Program Files (x86)\GlobalMapper15"
write=''.join((dir,'\\','call.bat'))
f= open(write,'w')
with f:
  f.write('@ECHO ON\n Call global_mapper.exe script.gms variable'
subprocess.call(write,cwd=dir)

如果您需要在Program Files文件夹中执行此操作,您可能会遇到管理员权限问题。否则,在用户主目录或appdata文件夹中,这可能会很好地运行。 - LightCC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接