python 报错后不关闭窗口_在Windows上双击运行Python程序不会自动退出的方法

在Windows上双击运行Python程序不会自动退出的方法

前言

本文描述了如何在Windows上双击运行Python程序,即使发生错误也不会自动退出的方法。

环境和工具:

将python.exe添加到环境变量中

使用.exe的的Python安装包来安装;

安装时勾选“Add Python to System env path”

如果已经安装,但是漏了勾选“Add Python to System env path”,可以再次运行.exe安装包选择修复(Modify)安装,并勾选“Add Python to System env path”。

一个Python程序例子

一个生成文件并计算文件大小的Python程序例子:

import os

def file_size(file_name):

size = os.stat(file_name).st_size

print(f'File size of {file_name}: {size}')

def main():

with open('data.txt', 'w') as file:

file.write("data file")

file_size('data.txt')

if __name__ == '__main__':

main()

将上面代码保存为test.py。

双击运行Python程序报错

直接在Windows上双击test.py,窗口一闪而过,并没有创建data.txt,注意看窗口报错“Invalid Syntax”。

这是因为当前存放test.py的目录并不在Windows的PATH环境变量中。

但是我们不可能将每一个存放Python程序的目录都添加到Windows的PATH环境变量中,这个问题可以通过运行Windows Command来解决。

双击运行Windows Command

在test.py的目录下创建一个test.cmd;

在test.cmd中输入:

python test.py

双击运行test.cmd就可以执行成功了,可以看到data.txt文件已被成功创建。

这个时候还有一个问题,程序运行结束后,窗口就自动关闭了。因为程序运行很快,窗口一闪而过,看不清窗口上显示了什么信息。

让程序停一会

为了让程序执行后停一会,不要自动关闭窗口,可以在test.py的main()方法中用input语句让程序等待用户输入,这时无论用户按下哪个键程序都继续结束程序。

import os

def file_size(file_name):

size = os.stat(file_name).st_size

print(f'File size of {file_name}: {size}')

def main():

with open('data.txt', 'w') as file:

file.write("data file")

file_size('data.txt')

input('Press any key to quit program.')

if __name__ == '__main__':

main()

但是这时如果程序执行出错时,窗口仍然会自动关闭。

程序出错时打印错误信息,不自动关闭窗口

为了让程序执行出错时,不自动关闭窗口,而是打印错误信息,则需要捕捉和处理程序可能发生的错误。

一个故意写错文件名的例子:

import os

def file_size(file_name):

size = os.stat(file_name).st_size

print(f'File size of {file_name}: {size}')

def main():

try:

with open('data.txt', 'w') as file:

file.write("data file")

file_size('wrong.txt')

except FileNotFoundError as error:

print(error)

finally:

input('Press any key to quit program.')

if __name__ == '__main__':

main()

小结

在Windows上双击运行Python不自动退出的方法:

确保将python.exe添加到Windows系统环境变量PATH中;

新建一个Windows Command(.cmd)文件;

在.cmd文件中输入python xxx.py;

在Python文件(.py)的main()函数最后使用input语句来让程序执行结束前,先等待用户按下任意键,才关闭窗口;

在Python文件(.py)中使用try...except...finally来捕捉可能发生的错误,使得在程序发生错误时,可以打印错误信息,而不会自动关闭窗口。

原文链接:https://blog.csdn.net/nklinsirui/article/details/107420944

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值