在不出现Windows控制台的情况下运行Python脚本
有没有办法在Windows XP上运行Python脚本,而不让命令窗口瞬间出现?我经常需要用Python来自动化WordPerfect(工作需要),即使我的脚本没有输出,如果我不是从WordPerfect里执行它,还是会弹出一个空的命令窗口,闪现一下就消失。有没有什么办法可以防止这种情况发生?比如说,输出重定向之类的?
11 个回答
这个方法适用于所有版本的Windows:
1. 用记事本(或者其他文本编辑器)创建一个名为Runner.bat的文件,并在里面写入以下内容:
@echo off
python server.py
这里的server.py是你想要运行的Python脚本的路径。
2. 用记事本创建一个名为RunScript.vbs的文件,并在里面写入以下内容:
CreateObject("Wscript.Shell").Run "runner.bat",0,True
3. 双击运行RunScript.vbs文件,你的Python脚本就会在没有任何可见控制台窗口的情况下运行。
补充说明:我知道这不是你问题的一部分,但如果你想在Windows启动时(用户登录后)运行这个脚本,只需把RunScript.vbs文件的快捷方式放到你的启动文件夹里。(在Windows 10中,通常路径是:C:\Users[USERNAME]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)
祝好
如果你把文件命名为“.pyw”结尾,Windows会用pythonw.exe这个程序来运行它。这样的话,就不会打开命令提示符窗口来执行你的脚本了。
pythonw.exe 可以在没有命令提示符的情况下运行脚本。问题是,Python 解释器 Python.exe 是和控制台系统连接的,所以它能输出控制台信息(因为大多数情况下都是这样)。而 pythonw.exe 是和图形用户界面(GUI)系统连接的,Windows 不会为它创建控制台输出窗口,除非它特别请求。
这篇文章讨论了用 Python 进行图形用户界面编程,并提到了 pythonw.exe。它还指出,如果你的 Python 文件以 .pyw
结尾,而不是 .py
,那么标准的 Windows 安装程序会正确设置关联,并用 pythonw.exe 来运行你的 Python 文件。
在你的情况下,这听起来不是个问题,但依赖于 pythonw.exe 会让你的应用程序变得只适用于 Windows——在其他系统,比如 Mac OS X,也有其他解决方案可以实现类似功能。