在Python程序里彻底去掉控制台窗口

本文详细介绍了如何在Python程序中去除控制台窗口,包括修改扩展名、重定向I/O输出和替代os.system调用等方法,使程序更符合Windows标准应用的呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自http://hi.baidu.com/fcl06/item/1c95c357d08b449409be1781


python程序缺省情况下运行会出现一个控制台窗口,在windows环境下显得很另类,我做的几个程序都一直有这个小尾巴,很讨厌.
我分析了一下有三种情况会产生控制台窗口
1.程序以py为扩展名
2.有print进行标准控制台I/O
3.通过os.system调用了dos命令
以上情况分别可以解决如下:
1.将程序改名为pyw,打包的时候在py2exe0.5.0版本以后统一用scripts命令,不在使用consoles和windows命令
2.进行I/O重定向,程序如下:
DEBUG=0
class Redirect:
def __init__(self, stdout):
self.stdout = stdout
def write(self, s):
self.stdout.write(string.lower(s))
if DEBUG: 
old_stdout = sys.stdout
else:
sys.stdout = Redirect(open(".\\r.txt","w"))
sys.stderr = Redirect(open(".\\re.txt","w"))
定义一个DEBUG如果=1则使用标准控制台I/O,则会出现控制台窗口,程序写完后改为0则将输出设备和错误输出到两个文本文件中.
4.将os.system调用改为os.popen,例如:os.popen(′dir′).read()
经过以上步骤后,可以彻底去掉各种控制台窗口,程序更象windows标准的应用程序一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值