我正在尝试使用Python来运行带参数的可执行文件(Windows 7)。我已经能够使程序运行,但我可以使用的参数数量将证明Python脚本使用参数是有限的。最好的格式如下:
-debugoutput debug.txt
我使用带有已编辑目标的Windows快捷方式对此进行了测试,并且它可以正常工作,它会在程序目录中创建一个调试输出。
以下是我正在使用的代码:
import subprocess
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput debug.txt"]
subprocess.call(args)
这会运行程序,但不会创建调试输出。我试过放一个" r"在参数前面,但没有区别。我认为这是一个简单的格式错误,但我找不到任何可以学习的例子。
更新:
感谢大家的答案,同样,确实存在简单的格式错误。
答案 0 :(得分:1)
代码内定义导致调用shell命令行:
C:\Users\MyName\LevelEditor\LevelEditor.exe "-debugoutput debug.txt"
正如您所看到的,通过将-debugoutput debug.txt
合并到单个列表元素,您明确声明它们之间的空格不应该被解析为命令行参数分隔符。
要实现预期的行为,请将文件名字符串作为参数列表的单独元素。
[r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]
答案 1 :(得分:0)
据我所知,你需要按空格分割参数,所以你的args看起来像:
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]
这有用吗?
答案 2 :(得分:0)
我不知道它是否有效,但是
import subprocess
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]
subprocess.run(args)
关注docs