本文描述了如何在Windows上双击运行Python程序,即使发生错误也不会自动退出的方法。
环境和工具:
.exe
的的Python安装包来安装;如果已经安装,但是漏了勾选“Add Python to System env path”,可以再次运行
.exe
安装包选择修复(Modify)安装,并勾选“Add Python to System env path”。
一个生成文件并计算文件大小的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。
直接在Windows上双击test.py,窗口一闪而过,并没有创建data.txt,注意看窗口报错“Invalid Syntax”。
这是因为当前存放test.py的目录并不在Windows的PATH环境变量中。
但是我们不可能将每一个存放Python程序的目录都添加到Windows的PATH环境变量中,这个问题可以通过运行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不自动退出的方法:
.cmd
)文件;.cmd
文件中输入python xxx.py
;.py
)的main()
函数最后使用input
语句来让程序执行结束前,先等待用户按下任意键,才关闭窗口;.py
)中使用try...except...finally
来捕捉可能发生的错误,使得在程序发生错误时,可以打印错误信息,而不会自动关闭窗口。本文地址:https://blog.csdn.net/nklinsirui/article/details/107420944
如对本文有疑问, 点击进行留言回复!!
第二章 如何利用Python读取Oracle表数据和表头转化为字典类型
荐 Python基础知识(一):变量与赋值、运算符、数据类型及位运算
python漫画爬虫:我不做人了,b站!爬取辉夜大小姐等漫画
【LeeCode 中等 数学 python3】剑指 Offer 43. 1~n整数中1出现的次数
网友评论