文章目录

  • 在Windows上双击运行Python程序不会自动退出的方法
    • 前言
    • 将python.exe添加到环境变量中
    • 一个Python程序例子
    • 双击运行Python程序报错
    • 双击运行Windows Command
    • 让程序停一会
    • 程序出错时打印错误信息,不自动关闭窗口
    • 小结

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

前言

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

环境和工具:

  • Windows 10
  • Python 3.7 Windows x86-64 executable installer
  • 文本编辑器

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

  1. 使用.exe的的Python安装包来安装;
  2. 安装时勾选“Add Python to System env path”

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

一个Python程序例子

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

import osdef file_size(file_name):size = os.stat(file_name).st_sizeprint(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

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

  2. 在test.cmd中输入:

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

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

让程序停一会

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

import osdef file_size(file_name):size = os.stat(file_name).st_sizeprint(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 osdef file_size(file_name):size = os.stat(file_name).st_sizeprint(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不自动退出的方法:

  1. 确保将python.exe添加到Windows系统环境变量PATH中;
  2. 新建一个Windows Command(.cmd)文件;
  3. .cmd文件中输入python xxx.py
  4. 在Python文件(.py)的main()函数最后使用input语句来让程序执行结束前,先等待用户按下任意键,才关闭窗口;
  5. 在Python文件(.py)中使用try...except...finally来捕捉可能发生的错误,使得在程序发生错误时,可以打印错误信息,而不会自动关闭窗口。

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

  1. 如何在linux上直接运行python程序

    如何在linux上直接运行python程序 一.前言 二.具体步骤 一.前言 个人主页: ζ小菜鸡 大家好我是ζ小菜鸡,小伙伴们,让我们一起来学习如何在linux上直接运行python程序. 如果文章 ...

  2. Windows下后台运行Python程序,并终止特定程序

    Windows以后台方式运行Python程序 Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c start.ba ...

  3. 运行python程序的两种方式交互式和文件式_教你如何编写、保存与运行 Python 程序...

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  4. 使用Windows任务计划自动运行Python程序

    目录 1.编写Python程序 2.编写Windows批处理命令 3.创建Windows任务计划 3.1 在程序栏搜索:任务计划程序 3.2 点开后如下图,右键新建一个文件夹: 3.3 创建一个叫Py ...

  5. 服务器任务栏运行程序不见了,Win7系统任务栏上正在运行的程序图标不见了怎么办...

    操作Windows7系统过程中会发现桌面下角的一些正在运行的图标不见了,也不知道怎么回事?正常情况下,只要打开程序应用都会显示在任务上的.我们又重新打开一个新程序,又会提醒你已经在运行了.为什么会出现 ...

  6. python编写的程序可以在任何平台中执行-在Windows平台上编写的Python程序无法在Unix平台运行。...

    [单选题]在中华人民共和国境内飞行的民用航空器必须具有: ( ) [单选题]属于发热激活物的是: [单选题]年满( )周岁可以独立实施民事法律行为视为完全民事行为能力人 [单选题]在DIC的原发病中, ...

  7. python只能运行在windows平台上吗_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 Because plants cannot move or talk, most people believe ...

  8. python可以在多种平台运行、体现了_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 某船公司2003年2月,建造了两艘航行于武汉-南京的2000吨油船,双壳结构形式,至今使用良好,为公司创 肾病 ...

  9. windows平台上编写的python无法在unix_【判断题】在Windows平台上编写的Python程序无法在Unix平台运行...

    [判断题]在Windows平台上编写的Python程序无法在Unix平台运行 更多相关问题 分别将下列物质滴入苯酚溶液中,产生白色沉淀的是A.浓溴水B.氢氧化钠溶液C.稀盐酸D.氯化铁溶液 有机物分子 ...

最新文章

  1. ext js IE9显示白板 页面浏览器模式强制渲染IE8
  2. HashMap 与 HashTable的区别
  3. 1-2 通过SQL管理数据库文件
  4. CodeForces - 1484F Useful Edges(最短路)
  5. jquery插件整理篇(六)HTML编辑器插件
  6. alex的ATM学习笔记
  7. marquee标签制作轮播图
  8. Oracle开发实战经典教程(教学视频)
  9. iOS之深入解析Hash在iOS中的应用
  10. 使用jmeter快速生成测试报告
  11. 使用Python及SMTP协议发送邮件(以163邮箱为例)
  12. Unable to find image ‘yt:latest‘ locally
  13. Ubuntu 14.04重装mysql
  14. 批量关闭公众号推送_微信发大招,长期不读的公众号可“批量关闭”!
  15. 1.3、操作系统的发展和分类
  16. java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw
  17. imgui中在指定位置(非固定window方式)绘制text
  18. img不拉伸图片 对图片保留原始比例
  19. 多模态 |COGMEN: COntextualized GNN based Multimodal Emotion recognitioN论文详解
  20. Swift CoreAnimation ---- CALayer的呈现层和模型层

热门文章

  1. Matrix Hub 矩阵运算库 C语言
  2. 计算机投标书开题报告,投标书开题报告.doc
  3. 今天终于玩了HiPiHi
  4. Django的form组件提交时错误不显示或无法提交
  5. 2021江西高考成绩查询电话6,2021江西高考查分数时间
  6. 2021韶关市高考成绩查询,韶关高考成绩查询入口
  7. Deepin编译安装 mongoc++ 驱动程序
  8. 光纤光谱仪在气体成分分析上应用
  9. boost库学习④:boost::asio::buffer
  10. 解决: ValueError: source code string cannot contain null bytes 问题