키보드를 사용하여 프롬프트에 응답 할 때 발생하는 stdin
의 반향을 억제해야하는 Python 스크립트가 있습니다.raw_input()이 파이썬의 키보드에서 왔는지 확인하는 방법
키보드를 사용할 때 VT100 제어 코드를 사용하여 한 줄 위로 이동하고 줄을 지운 다음 다른 줄을 위로 이동하여 출력이 새로 채워진 줄을 지울 수 있습니다.
그러나,이 코드는 출력을 엉망 및 입력 파일에서 올 때 유효한 출력의 라인을 삭제 끝 (즉, cat test | myscript.py
, 표준 입력은 분명히이 경우 표준 출력에 아무것도 표시하지 않기 때문에.
입력이 스크립트로 보내지는 방법을 제어 할 수 없으며 사용자가 키보드 또는 파일을 사용할 지 여부를 모르겠습니다.
raw_input()의 출력을 검사 할 수있는 방법이 있습니까? 키보드에서 입력을받은 경우 VT100 제어 코드를 실행하십시오.
그래, 완벽하게 작동합니다. 감사! – javanix
호기심에서 벗어나 스크립트에 렌치를 던질 수있는 TTY 입력을 "스크립팅"할 수있는 방법이 있습니까? – javanix
예, 있지만 파이프를 통해 작동하지 않습니다. pty 모듈을 참조하십시오. 당신의 목적이 단지 echo를 모두 비활성화시키는 것이라면, Ignacio가 말한 것처럼 (isatty를 테스트 한 후에); 어쨌든 껍질과 편집자가 사용하는 것입니다. –