Fortschritt speichern, wenn Python abnormal beendet wird?
黄舟2017-05-18 10:53:50
0
3
1109
Problem: Text lesen, um eine Liste zu erstellen. list.pop() während das Programm läuft. Jetzt möchte ich fragen, ob ich die Werte in der Liste beim abnormalen Beenden in den Text umschreiben kann. Ausnahme: Strg-c, töten, Strg-z Danke!
你说的这几种异常情况, 都是程序接收到相应信号, 采取默认动作(退出)导致的, 所以可以通过
注册信号, 改变默认动作
来避免程序异常退出.经过上面的
signal
将对应的信号动作绑定到hander函数
, 在接受到Ctrl-c , kill , Ctrl-z都能分别执行handler
的代码了, 至于想怎么实现, 可以自定义, 如果除了这些信号意外的情况, 得示其他情况而决定采取什么措施! 可以学习下python signal
相关的知识(有个别信号无法捕获, 这是系统决定的, 需要注意)可以尝试在if main里捕获异常:
python中有个函数叫atexit,它会在程序退出时进行回调,一般的退出都可以被捕获。