+ -
当前位置:首页 → 问答吧 → 批处理bat转python的问题

批处理bat转python的问题

时间:2011-09-27

来源:互联网

为了减少文件,我尝试把python调用的.bat文件直接改写成pyhon代码:

@Echo off
cd C:\Program Files\WinRAR
Unrar x C:\AutoDeployTest\001.rar C:\YFMAP_APP
Pause

我将以上的bat操作改成了下面这个python方法:

import os
cmd = 'Unrar x C:\AutoDeployTest\001.rar C:\YFMAP_APP'
os.chdir('C:/Program Files/WinRAR/')
os.system(cmd)

1.结果什么都没有解压出来,并且没有任何提示。。。请问为啥?

2.另外,cmd 命令的提示并不在python shell窗口显示,哪怕是调用.bat文件运行出错,python会自动关闭cmd窗口,造成任何提示都看不到,而且不能及时发现出错,有什么办法么?

作者: JacksonLv   发布时间: 2011-09-27

1. r''
2. 不要用os.system。阅读文档。
3. 用pipe读取子进程的输出,然后自己打印到屏幕上。检查程序退出码。

作者: iambic   发布时间: 2011-09-27

根据您的提示,我看了帮助文档,并改成了这样的过程:

import os
import subprocess
cmd = 'Unrar x C:\AutoDeployTest\001.rar C:\YFMAP_APP'
os.chdir('C:/Program Files/WinRAR/')
p = subprocess.Popen(cmd,shell=True)
sts = os.waitpid(p.pid,0)[1]
print(sts)

运行结果提示的错误:
  sts = os.waitpid(p.pid,0)[1]
OSError: [Errno 10] No child processes

帮助文档中有,为什么会没有子进程呢??

作者: JacksonLv   发布时间: 2011-09-27

热门下载

更多