Python이 비정상적으로 종료되면 진행 상황을 저장하시겠습니까?
黄舟
黄舟 2017-05-18 10:53:50
0
3
1132

문제:
텍스트를 읽어 목록을 생성하세요. list.pop() 프로그램이 실행되는 동안. 이제 비정상 종료 시 목록에 있는 값을 텍스트에 다시 쓸 수 있는지 묻고 싶습니다.
예외:
Ctrl-c, kill, Ctrl-z
감사합니다!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
PHPzhong

말씀하신 비정상적인 상황은 모두 프로그램이 해당 신호를 받아 기본 동작(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 신호. (일부 신호는 캡처할 수 없습니다. 이는 시스템에 의해 결정됩니다. 주의하시기 바랍니다)🎜
左手右手慢动作

주요 경우에서 예외를 잡을 수 있습니다:

으아아아
刘奇

Python에는 atexit이라는 함수가 있는데, 이 함수는 프로그램이 종료될 때 다시 호출하여 일반 종료를 캡처할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿