python - 调用 sys.exit() 后 atexit 未触发
问题描述
我正在尝试为我使用 pyautogui 在 python 中编写的自动化脚本实现一些基本的关闭任务。我每天打开一个程序并单击某些按钮来创建每日报告。但是如果出现问题,我需要它来关闭它正在使用的程序。
我尝试使用 atexit.register,但是当我触发 sys.exit() 时它似乎没有运行。所以我写了一个测试脚本来验证它是否正在触发,而事实并非如此。
import atexit as a
import sys
def closeout():
print("atexit triggered, closing out")
print("starting program")
print("Registering closeout with atexit")
a.register(closeout)
print(r"triggering sys.exit()")
sys.exit()
它应该打印出以下内容:
"starting program"
"Registering closeout with atexit"
"triggering sys.exit()"
"atexit triggered, closing out"
但我没有得到最后一行。
有什么想法吗?如果重要的话,我正在运行 3.7.2。
解决方案
推荐阅读
- php - 无法在视图中显示或检索文件,该文件以路径的形式上传到数据库中。(使用 laravel )
- ruby-on-rails - 即使设置了错误,Rails Record 也会被保存
- android - 何时关闭从 Asp.net 到 Oracle 数据库的连接
- rest - 在不知道其值的情况下,将 RESTful API 中资源字段的值增加固定数量
- java - 斯坦福核心 nlp 关系依赖关系代表什么
- jsf - p:autoComplete 表单验证后丢失的值
- angular - Angular 7 错误拦截器 - 原始调用有问题
- c# - 在winform应用程序中关闭表单时如何修复“System.ObjectDisposedException”
- vue.js - 使用 nuxt2.3.x 导入异步组件时遇到错误原因:SyntaxError: Unexpected identifier
- python - 格式的无效语法