Python脚本在命令行中运行后闪退的解决方案

轻涛姑娘_9326

轻涛姑娘_9326

2026-02-08

826人浏览

原创

Python脚本在命令行中运行后闪退的解决方案

python脚本在cmd中运行完毕立即关闭,是因为程序正常执行结束导致终端窗口自动退出;而vs code调试器会保持终端打开。只需在主流程末尾添加input("press enter to exit")即可阻塞退出,方便查看输出结果。

当你双击 .py 文件或通过文件资源管理器“用 Python 打开”时,Windows 会调用 python.exe 运行脚本,并在脚本执行完毕后立即关闭命令提示符窗口——这是 Windows 的默认行为,与你的代码逻辑无关。而 VS Code 的调试终端(或集成终端)是长期驻留的 Shell 环境,不会随脚本结束而关闭,因此你能在其中完整看到所有输出和交互。

根本原因在于:你的 main() 函数执行完成后,Python 解释器退出,父进程(CMD 窗口)随之终止。即使代码中已有多个 input(),只要它们全部被跳过、异常中断或未被执行到(例如登录失败提前退出、desktop() 循环中缺少退出路径),程序仍会快速到达结尾并关闭。

✅ 正确做法:在 main() 函数最后、确保总会执行的位置添加一个兜底的 input(),例如:

windows-auto
windows-auto

Windows 桌面自动化技能,支持鼠标控制(移动/点击/拖拽/滚轮/截图)、键盘输入(文字输入/按键/组合键)、窗口管理(查找/聚焦/最大化/最小化/关闭/移动)、截图并发送文件。提供两种截图方式:Python pyautogui 截图(集成在自动化流程中)和 PowerShell + .NET 零依赖截图(支持区域截图和多显示器)。当用户需要自动化 Windows 桌面操作、控制鼠标键盘、管理窗口、执行 GUI 自动化任务、截图发送文件时使用。

下载
def main():
    welcome_user()
    boot_up()
    time.sleep(1)
    login()
    input("Press Enter to exit...")  # ✅ 关键修复:阻塞终端关闭

⚠️ 注意事项:

  • 不要将 input() 放在 login() 内部或 desktop() 循环中——它必须位于整个程序逻辑的最终出口处;
  • 若 desktop() 使用 while True: 且无 break 退出机制(如原代码中缺少 exit 命令),用户将永远无法抵达该 input();因此需同步完善退出逻辑(如上文答案中为 desktop() 添加 elif program == "exit": break);
  • 避免在 getpass.getpass() 后直接接 input(),否则可能造成输入行为混淆(getpass 隐藏输入,普通 input 显示光标);
  • 生产环境不建议依赖人工按键退出,可改用 os.system("pause")(Windows)或 input() + 清晰提示语提升用户体验。

? 额外建议:
为便于分发,可将脚本打包为 .exe(使用 PyInstaller),并添加 --console 参数保留控制台,或使用 --noconsole + 日志文件方式隐藏终端——但开发调试阶段,input() 是最轻量、可靠且跨平台的临时解决方案。

总结:命令行闪退 ≠ 代码错误,而是终端生命周期管理问题。添加一行 input() 是最直接有效的调试辅助手段,也是 Python 桌面端脚本的常见实践。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.25

354

5

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

2025.10.15

3020

7

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

2025.10.24

827

6

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

2023.08.08

896

5

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

2024.05.29

6663

7

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

894

4

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3339

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2918

6

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

2023.08.01

1528

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习