我想运行一个通常直接在命令行上运行但最终通过Python脚本运行的可执行文件。 我在阅读完这里后使用了subprocess.Popen和多个Google搜索结果,取得了一些有限的成功。
>>>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?
最终&#34;用法&#34;由于声明的sys.argvs将提供可执行文件自动运行所需的所有信息,因此最终甚至不需要part。
答案 0 :(得分:0)
subprocess.call()通过声明argv变量然后连接变量并在subprocess.call()中使用最终变量而不是使用我首次尝试的shlex.split()来实现所需的结果。即使使用'\'为Windows转义
,也会遇到路径问题import subprocess
exe_path = sys.argv[1]
dir_path_in = sys.argv[2]
dir_path_out = sys.argv[3]
command = exe_path, dir_path_in, dir_path_out
p = subprocess.call(command)