专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

用subprocess.Popen调用子进程的方法

发布时间:2011-06-29 20:10:52 文章来源:www.iduyao.cn 采编人员:星星草
用subprocess.Popen调用子进程的方法求助
我在写一个自动化脚本,在某步骤出了点困难,我大概描述一下:

我有个运行winCE的机器,通过同步线连接到PC,我的目的是通过操作PC关闭(或打开)winCE下运行的进程“*_APP”,平时我需要打开PC端的rconsole.exe程序,并运行命令“kill *_APP”便可。rconsole.exe打开后是一个类似Shell的窗口,打开后会自动寻找winCE设备并连接它(这需要几秒钟时间),然后便可以输入控制winCE的命令了。现在我要通过python3.2来实现这个动作:
Python code

try:
    cmd='kill *_App'  #这里如果用['kill','*_App']会提示Can't convert 'list' object to str implicitly
    if DEBUG:
        print('执行命令:'+cmd)
    subprocess.Popen(cmd,cwd=r'C:\rconsole.exe',stdout=subprocess.PIPE)
    print(subprocess.PIPE) #查看子进程的输出,若为“-1”表示执行命令成功

运行结果:
>>> 
执行命令:kill *_App
[Error 2] 系统找不到指定的文件。

大虾有什么看法?

------解决方案--------------------
不要用字符串做命令行。用一个list。
有错误就解决错误,仔细阅读出错信息。Can't convert 'list' object to str implicitly是在'执行命令:'+cmd的时候出错,根据错误信息解决起来是很容易的。
------解决方案--------------------
探讨

我改用list后,子进程rconsole.exe启动到前台,但停在输入参数那个界面没反应,它似乎只执行list中的第一个命令,后面的命令不执行
Python code

try:
cmd=['kill','*_App']
if DEBUG:
print('执行命令:kill *_App')
subprocess.Popen(cmd,cwd=r'C:\rconsole.exe',stdout=subprocess.PIPE)
print(subprocess.PIPE)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: