gpt4 book ai didi

python - 如何防止 Python 脚本强制退出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:23 26 4
gpt4 key购买 nike

我正在运行 python 脚本并试图防止强制退出或打印错误消息或将其记录到日志文件中。

我已经在使用 logging.info("") 进行日志记录..或者只是使用 print 进行打印..

但是我该如何创建一个在强制退出时可以打印或记录的方法或函数?

例如,如果我的 test.py 正在运行,我按 Ctrl + C 退出。我想记录或打印出来。

signal.signal(signal.SIGUSR1, handler)
logging.info("Checked for signal to stop")
if stop:
logging.info("Inside of main if loop for stop signal")
logging.info("Stop signal captured. Exiting the program")
smtpObj.sendmail(sender, receivers, message + "Stop signal captured. Exiting the program")
sys.exit("EXIT SIGNAL CAPTURED: EXITING")

我正在使用上面的代码记录我想退出程序的时间。但这并不处理像 ctrl + c 这样的事情我还想记录以防程序意外退出或其他事情

最佳答案

已更新

使用 try 和 except:

try:
signal.signal(signal.SIGUSR1, handler)
logging.info("Checked for signal to stop")
if stop:
logging.info("Inside of main if loop for stop signal")
logging.info("Stop signal captured. Exiting the program")
smtpObj.sendmail(sender, receivers, message + "Stop signal captured. Exiting the program")
sys.exit("EXIT SIGNAL CAPTURED: EXITING")
except KeyboardInterrupt as kbe:
log.info(str(kbe))

您还可以利用 atexit 模块在脚本退出时执行函数。

import atexit

def alldone():
log.warning('Something went wrong')

# your code here...

https://docs.python.org/2/library/atexit.html

关于python - 如何防止 Python 脚本强制退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com