目前,我有一个exe需要将命令传递给ththon。代码本身就是有效的。当我将该片段与我的最终节目合并时,它无法正常工作。
基本上,在使用程序shell_start
上传前两个文件之后(我正在将命令传递到程序中的-f
上传),python决定跳过底部的最终上传程序名为shell_forward
。使用程序shell_forward
最终上传3个文件甚至无法正常工作。
所以,我的主要问题是,如果你感到困惑,那就是:为什么当程序shell_start
完成上传两个命令和文件时,python shell将不允许我在其中键入任何内容?它就像一个命令提示符窗口,在执行代码后不会让你输入任何东西。
这就是为什么我觉得从前一个进程终止shell_start.exe
需要一个ctrl-c,所以python可能让我在执行后输入。
以下是代码:
import os, time
name = raw_input("Input your name: ")
apn = raw_input("Input apn name: ")
ecid = raw_input("Input ecid name: ")
kernel = raw_input("Input kernel name: ")
os.system('shell_start.exe -f %s'%name)
time.sleep(1)
os.system('shell_start.exe -f %s'%apn)
time.sleep(1)
os.system('shell_forward.exe --imagefile myfile.img --ecid %(x)s --kernel %(y)s '% {"x" : ecid, "y" : kernel})
答案 0 :(得分:2)
将os.system
来电替换为subprocess
可能会有更好的结果。
子进程模块允许您生成新进程,连接到 他们的输入/输出/错误管道,并获得他们的返回代码。这个 模块打算替换其他几个较旧的模块和功能, 如:
os.system os.spawn* os.popen* popen2.* commands.*
另见PEP 324 - 提议子流程模块的PEP