문제:
텍스트를 읽어 목록을 생성하세요. list.pop() 프로그램이 실행되는 동안. 이제 비정상 종료 시 목록에 있는 값을 텍스트에 다시 쓸 수 있는지 묻고 싶습니다.
예외:
Ctrl-c, kill, Ctrl-z
감사합니다!
PHPz2017-05-18 10:55:50
말씀하신 비정상적인 상황은 모두 프로그램이 해당 신호를 받아 기본 동작(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
으아아아
시그널
을 통해 해당 신호 액션을 핸더 함수
에 바인딩합니다. Ctrl-c, kill, Ctrl-z를 받은 후 핸들러를 실행할 수 있습니다.
의 코드를 구현하는 방법은 사용자 정의할 수 있습니다. 이러한 신호 외에 다른 상황이 발생하면 어떤 조치를 취해야 하는지 알 수 있습니다. code>python 신호. (일부 신호는 캡처할 수 없습니다. 이는 시스템에 의해 결정됩니다. 주의하시기 바랍니다)🎜怪我咯2017-05-18 10:55:50
Python에는 atexit이라는 함수가 있는데, 이 함수는 프로그램이 종료될 때 다시 호출하여 일반 종료를 캡처할 수 있습니다.