我正在尝试为我用pyautogui用python编写的自动化脚本实现一些基本的结束任务。我每天打开一个程序并点击某些按钮来创建每日报告。但是如果出了问题,我需要它关闭它正在使用的程序。在
我试着用atexit.register公司,但当我触发时它似乎没有运行系统出口(). 所以我写了一个测试脚本来验证它是否触发了
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()
应打印以下内容:
^{pr2}$但我没听懂最后一句话。在
有什么想法吗?如果重要的话,我会运行3.7.2。在
当您从IDLE“run module”时,它使用compile内置函数从关联文件构建一个代码对象,然后使用
exec
运行它。运行代码的进程不会退出,SystemExit
会被捕获并在空闲解释器中被忽略,否则包含它的脚本将导致IDLE退出!-因此atexit
处理程序没有运行。在此外,IDLE的默认构建被配置为在退出时删除任何register
atexit
函数,因此当IDLE本身最终退出时,处理程序不会运行。(请参阅cpython repo中的exit函数。)相关问题 更多 >
编程相关推荐