2016-11-13 1 views
0

이것은 거의 복제본 clear terminal in python입니다.파이썬에서 명확한 터미널 (그리고 역사!)

그 질문이 읽습니다 : 파이썬 스크립트에서 터미널 화면을 지우는 표준 "배터리와 함께"방법이 있습니까, 아니면 저주 (라이브러리가 아닌 단어) 가야합니까?

터미널에 clear을 입력하면 모든 응답이 나타나며 맨 위에있는 빈 명령 줄을 제외하고 화면의 모든 항목이 사라집니다. 그러나 원할 경우 다시 스크롤하여 이전에 수행 한 작업을 볼 수 있습니다.

이 방법을 찾고 있지만 사용자가 다시 스크롤 할 수 없도록해야합니다. 이것은 macOS에서 command+K이하는 것과 같습니다.

이 응용 프로그램은 멀티 플레이어 카드 게임이므로 다른 플레이어의 손을보기 위해 플레이어를 다시 스크롤 할 수 없도록하려는 것입니다.

답변

4

당신은 터미널을 다시 초기화 및 효과 할 clear에 비슷한뿐만 아니라 스크롤 백 기록을 삭제합니다 터미널에 reset 명령을 전송하는 표준 라이브러리 subprocess 모듈에서 subprocess.call()를 사용할 수 있습니다.

import subprocess 
subprocess.call('reset') 

또는 혼자 reset 당신은 약간의 지연을 경험하게 될 것입니다 반면에 당신이 즉시 터미널을 취소 할 대신 명령 tput reset를 사용할 수있는, this answer에서 배웠습니다. 다음과 같이 이것은 또한 subprocess.call()로 호출 할 수 있습니다

reset 명령에 대한 추가 정보를 원하시면
subprocess.call(['tput', 'reset']) 

는 수행합니다 subprocess 모듈에 대한 추가 정보를 원하시면, the documentation를 참조

$ man reset 

.

나는 이것들을 우분투에서 테스트했지만, 잘하면 OSX/macOS에서도 잘 동작 할 것이다. 그렇지 않은 경우 과 this solution을 결합하여 사용할 수는 있지만 테스트 할 수는 없습니다.

2

파이썬에는 curses 모듈이 기본적으로 포함되어 있습니다.이 모듈을 사용하면 텍스트 화면에 일종의 GUI를 구현할 수 있습니다. 플레이어는 의도적으로 스크롤 텍스트 창을 구현하지 않는 한 이전 출력으로 스크롤 할 수 없습니다. 화면의 아무 것도 실제로 스크롤하지 않기 때문에 터미널의 스크롤 백 기능은 curses 애플리케이션에서 아무 것도하지 않습니다. 대신 덮어 쓰여집니다.

관련 문제