문제: 텍스트를 읽어 목록을 생성하세요. list.pop() 프로그램이 실행되는 동안. 이제 비정상 종료 시 목록에 있는 값을 텍스트에 다시 쓸 수 있는지 묻고 싶습니다. 예외: Ctrl-c, kill, Ctrl-z감사합니다!
人生最曼妙的风景,竟是内心的淡定与从容!
말씀하신 비정상적인 상황은 모두 프로그램이 해당 신호를 받아 기본 동작(exit)을 취함으로써 발생하므로 신호를 등록하고 기본 동작을 변경하면 프로그램이 비정상적으로 종료되는 것을 방지할 수 있습니다. .注册信号, 改变默认动作来避免程序异常退出.
신호를 등록하고 기본 동작을 변경
注册信号, 改变默认动作
import signal import time def hander(signum, frame): # 接受到信号后你想做的事 print signum, frame signal.signal(signal.SIGTERM, hander) # 捕获kill : SIGTERM信号 signal.signal(signal.SIGINT, hander) # 捕获Ctrl-c: SIGTERM 信号(可以绑定不同的函数) signal.signal(signal.SIGTSTP, hander) # 捕获 Ctrl-z: SIGTSTP信号(可以绑定不同的函数) while 1: time.sleep(1)
经过上面的signal将对应的信号动作绑定到hander函数, 在接受到Ctrl-c , kill , Ctrl-z都能分别执行handler的代码了, 至于想怎么实现, 可以自定义, 如果除了这些信号意外的情况, 得示其他情况而决定采取什么措施! 可以学习下python signal 으아아아
signal
hander函数
handler
python signal
시그널
핸더 함수
핸들러를 실행할 수 있습니다.
주요 경우에서 예외를 잡을 수 있습니다:
Python에는 atexit이라는 함수가 있는데, 이 함수는 프로그램이 종료될 때 다시 호출하여 일반 종료를 캡처할 수 있습니다.
말씀하신 비정상적인 상황은 모두 프로그램이 해당 신호를 받아 기본 동작(exit)을 취함으로써 발생하므로
신호를 등록하고 기본 동작을 변경
하면 프로그램이 비정상적으로 종료되는 것을 방지할 수 있습니다. .注册信号, 改变默认动作
来避免程序异常退出.经过上面的
위signal
将对应的信号动作绑定到hander函数
, 在接受到Ctrl-c , kill , Ctrl-z都能分别执行handler
的代码了, 至于想怎么实现, 可以自定义, 如果除了这些信号意外的情况, 得示其他情况而决定采取什么措施! 可以学习下python signal
으아아아시그널
을 통해 해당 신호 액션을핸더 함수
에 바인딩합니다. Ctrl-c, kill, Ctrl-z를 받은 후핸들러를 실행할 수 있습니다.
의 코드를 구현하는 방법은 사용자 정의할 수 있습니다. 이러한 신호 외에 다른 상황이 발생하면 어떤 조치를 취해야 하는지 알 수 있습니다. code>python 신호. (일부 신호는 캡처할 수 없습니다. 이는 시스템에 의해 결정됩니다. 주의하시기 바랍니다)🎜주요 경우에서 예외를 잡을 수 있습니다:
으아아아Python에는 atexit이라는 함수가 있는데, 이 함수는 프로그램이 종료될 때 다시 호출하여 일반 종료를 캡처할 수 있습니다.