I는 다음과 같습니다 Windows에서 파이썬 3에서 일부 코드를 쓰고 있어요 : python foo.py
와 콘솔에서 직접 실행하는 경우정지 KeyboardInterrupt에 도달 배치 파일 프로세서
try:
do something that takes a long time
(training a neural network in TensorFlow, as it happens)
except KeyboardInterrupt:
print('^C')
print a summary of results
still useful even if the training was cut short early
이 완벽하게 작동합니다.
그러나 파이썬 호출이 배치 파일 내에있는 경우 위의 모든 작업을 수행하지만 '일괄 처리 작업 종료'프롬프트를 사용하여 콘솔을 스팸으로 처리합니다.
그런 일을 막을 방법이 있습니까? 파이썬에서^C를 완전히 먹어서 배치 파일이나 그 밖의 다른 방법으로 뛰어 넘는가?
파이썬에서 제어 할 수 없습니다. 콘솔 호스트 (conhost.exe)에 연결된 모든 프로세스는 세션 서버 (csrss.exe)에 의해 생성 된 새 스레드에서 콘솔 제어 이벤트를 수신합니다. CMD의 처리기가 플래그를 설정합니다. 파이썬이 종료 된 후 디스패치 루프를 다시 시작하면 Ctrl + C 플래그가 설정되어 "배치 작업 종료"메시지가 인쇄됩니다. – eryksun