Python - 执行带有文件输出参数的程序

Python - Execute program with parameters with file output

我正在尝试使用 Python 到 运行 带有参数的可执行文件 (Windows 7)。我已经能够制作程序 运行,但是我可以使用的参数数量将证明 Python 脚本使用参数是有限的。最好的格式如下:

-调试输出debug.txt

我已经使用带有编辑目标的 windows 快捷方式对此进行了测试并且它有效,它在程序目录中创建了调试输出。

这是我使用的代码:

import subprocess
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput debug.txt"]
subprocess.call(args)

这会 运行 程序,但不会创建调试输出。我试过在参数前面放一个 "r" 但这没有什么区别。我认为这是一个简单的格式错误,但我找不到任何可以从中学习的正在做同样事情的例子。

更新:

谢谢大家的回答,都一样,确实是简单的格式错误。

据我所知,您需要按 space 拆分参数,因此您的参数看起来像:

args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]

这样行吗?

我不知道它是否有效,但是

import subprocess
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]
subprocess.run(args)

关注 docs

代码内定义导致调用 shell 命令行:

C:\Users\MyName\LevelEditor\LevelEditor.exe "-debugoutput debug.txt"

如您所见,通过将 -debugoutput debug.txt 合并到单个列表元素,您明确声明不应将它们之间的 space 解析为命令行参数分隔符。

为了实现预期的行为,将文件名字符串作为单独的元素添加到参数列表中。

[r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"]