반응형
사용자가 ESCape 키를 눌러 프로세스를 중단하도록하는 명령 창 (Windows 7, Python 3.1)에서 프로세스를 실행하고 있습니다. 그러나 ESCape 키를 눌러도 아무 작업도 수행되지 않는 것 같습니다.-(루프가 끊기지 않습니다. 또한 IDE (Wing) 내에서 스크립트 실행을 시도했지만 다시 루프를 중단 할 수 없습니다.
다음은 개념 증명 테스트의 일부를 제거한 버전입니다.
import msvcrt
import time
aborted = False
for time_remaining in range(10,0,-1):
# First of all, check if ESCape was pressed
if msvcrt.kbhit() and msvcrt.getch()==chr(27):
aborted = True
break
print(str(time_remaining)) # so I can see loop is working
time.sleep(1) # delay for 1 second
#endfor timing loop
if aborted:
print("Program was aborted")
else:
print("Program was not aborted")
time.sleep(5) # to see result in command window before it disappears!
누군가 내가 어디로 잘못 가고 있는지 말해 줄 수 있다면 가장 감사 할 것입니다.
해결 방법
Python 3 문자열은 유니 코드이므로 비교를 위해 바이트로 인코딩해야합니다. 이 테스트를 시도하십시오.
if msvcrt.kbhit() and msvcrt.getch() == chr(27).encode():
aborted = True
break
또는이 테스트 :
if msvcrt.kbhit() and msvcrt.getch().decode() == chr(27):
aborted = True
break
또는이 테스트 :
if msvcrt.kbhit() and ord(msvcrt.getch()) == 27:
aborted = True
break
참조 페이지 https://stackoverflow.com/questions/5137238
반응형
'파이썬' 카테고리의 다른 글
파이썬 threading.Thread의 setDaemon () 메서드 (0) | 2020.10.08 |
---|---|
파이썬 ImportError : _ssl이라는 모듈이 없습니다. (0) | 2020.10.08 |
파이썬 주어진 파이썬 문자열이 다른 문자열의 하위 문자열인지 어떻게 확인합니까? (0) | 2020.10.08 |
파이썬 Python : '3 년 전 오늘'날짜 시간 가져 오기 (0) | 2020.10.08 |
파이썬 특정 오류 코드를 처리하는 Python? (0) | 2020.10.08 |
댓글