【发布时间】:2014-12-29 09:49:52
【问题描述】:
我想运行一个通常直接在命令行上运行但最终通过 Python 脚本运行的可执行文件。 在阅读完此处和多个 Google 结果后,我使用了 subprocess.Popen 以取得一些有限的成功。
>>>import subprocess
>>>exe_path = sys.argv[1]
>>>dir_path_in = sys.argv[2]
>>>dir_path_out = sys.argv[3]
>>>subprocess.Popen([exe_path])
然后显示
<subprocess.Popen object at 0x021B7B30>
紧随其后
>>>usage: <path to exe> [options] <dir_path> <dir_path_out>
但是,如果我在命令行中输入您通常期望的内容,如果专门使用它会返回:
>>>SyntaxError: invalid token
我已经测试了使用 exe 专门在命令行上输入的内容,它可以正常工作,只是不能通过 Python
我查看了 StackOverFlow,发现最好的比较是在这里How to handle an executable requiring interactive responses?
最终甚至不需要“使用”部分,因为声明的 sys.argvs 将提供可执行文件自动运行所需的所有信息。
【问题讨论】:
-
显示完整的回溯(包括代码损坏的行)。注意:用法输出建议等待命令结束运行,您可以:
subprocess.check_call(sys.argv[1:4])
标签: python subprocess executable