有没有办法在不出现命令shell的情况下在Windows XP中运行Python脚本?我经常需要使用Python自动化WordPerfect (用于工作),即使我的脚本没有输出,如果我在没有WP的情况下执行它,在消失之前,一个空的shell仍然会弹出一秒钟。有什么方法可以防止这种情况发生吗?也许是某种输出重定向?
发布于 2009-11-07 01:17:11
pythonw.exe将在没有命令提示符的情况下运行脚本。问题是Python解释器Python.exe被链接到控制台子系统上以产生控制台输出(因为90%的情况下都是这样) -- pythonw.exe被链接到GUI子系统上,除非它请求控制台输出窗口,否则它不会为它创建控制台输出窗口。
This article讨论了使用Python进行图形用户界面编程,也提到了pythonw.exe。它还有用地指出,如果您的Python文件以.pyw而不是.py结尾,标准的Windows installer将正确地设置关联并在pythonw.exe中运行您的Python。
在您的情况下,这听起来不是问题,但是依赖于pythonw.exe使您的应用程序特定于Windows --在Mac上有其他解决方案可以实现这一点。
发布于 2009-11-07 02:00:29
如果你用".pyw“扩展名命名你的文件,那么windows将用pythonw.exe解释器来执行它们。这将不会打开用于运行脚本的dos控制台。
发布于 2018-03-23 22:19:21
我尝试了上面的方法,但是,由于我的脚本中的计时器,控制台静止画面很快就会出现和消失。最后,我找到了以下代码:
import ctypes
import os
import win32process
hwnd = ctypes.windll.kernel32.GetConsoleWindow()
if hwnd != 0:
ctypes.windll.user32.ShowWindow(hwnd, 0)
ctypes.windll.kernel32.CloseHandle(hwnd)
_, pid = win32process.GetWindowThreadProcessId(hwnd)
os.system('taskkill /PID ' + str(pid) + ' /f')https://stackoverflow.com/questions/1689015
复制相似问题