首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不显示Windows控制台的情况下运行Python脚本

在不显示Windows控制台的情况下运行Python脚本
EN

Stack Overflow用户
提问于 2009-11-07 01:16:28
回答 9查看 96.7K关注 0票数 69

有没有办法在不出现命令shell的情况下在Windows XP中运行Python脚本?我经常需要使用Python自动化WordPerfect (用于工作),即使我的脚本没有输出,如果我在没有WP的情况下执行它,在消失之前,一个空的shell仍然会弹出一秒钟。有什么方法可以防止这种情况发生吗?也许是某种输出重定向?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 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上有其他解决方案可以实现这一点。

票数 125
EN

Stack Overflow用户

发布于 2009-11-07 02:00:29

如果你用".pyw“扩展名命名你的文件,那么windows将用pythonw.exe解释器来执行它们。这将不会打开用于运行脚本的dos控制台。

票数 36
EN

Stack Overflow用户

发布于 2018-03-23 22:19:21

我尝试了上面的方法,但是,由于我的脚本中的计时器,控制台静止画面很快就会出现和消失。最后,我找到了以下代码:

代码语言:javascript
复制
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')
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1689015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档