没啥意思的站点

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下改改代码可能会用到,在这里

4 评论

  1. 用 os.popen 就可以了,虽然 python3 会去掉

  2. 额,win下还有啥可用的命令行程序么?

发表评论