python程序,在windows下调用子进程,不产生cmd窗口的办法
python写的GTK程序,会有这样一个怪现象,本来在cmd下用 python xxx.py 启动,还好好的,但是用py2exe编译以后,再用subprocess调用命令行程序的时候,就发现一个黑乎乎的cmd窗口跳出来了,特别难看,要消除它其实也还比较容易,但是要使用startupinfo这个windows only的参数,以下代码是linux和windows通用的例子:
if os.name == 'nt': startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW startupinfo.wShowWindow = subprocess.SW_HIDE else: startupinfo = None subprocess.Popen(要运行的命令, startupinfo=startupinfo) |
经过今天的修改,gmbox 0.2.4 beta 已经基本能在win下运行了,哈哈。
PS:贴一个ultraedit的python语法高亮文件,偶尔在win下改改代码可能会用到,在这里。
Shellexy 在 2010年04月24日 20:25 说:【 】
用 os.popen 就可以了,虽然 python3 会去掉
bones7456 在 2010年04月24日 20:57 说:【 】
呃,不是不推荐用 os.opoen 了嘛。。。
xiooli 在 2010年04月24日 20:36 说:【 】
额,win下还有啥可用的命令行程序么?
bones7456 在 2010年04月24日 20:58 说:【 】
比如gmbox就调用 mpg123.exe,其实很多linux下的命令行程序都有win版的。