방금 인쇄 한 문자열을 편집하려면 어떻게해야합니까? 예를 들어, 카운트 다운 카운터의 경우 (First prints 30, 그 다음 29 등으로 변경)표준 출력으로 인쇄 된 문자열을 편집하려면 어떻게해야합니까?
감사합니다.
방금 인쇄 한 문자열을 편집하려면 어떻게해야합니까? 예를 들어, 카운트 다운 카운터의 경우 (First prints 30, 그 다음 29 등으로 변경)표준 출력으로 인쇄 된 문자열을 편집하려면 어떻게해야합니까?
감사합니다.
캐리지 리턴 \r
을 인쇄하면 커서가 줄의 처음으로 돌아갑니다. 행을 역 추적 할 수 없으므로 마지막에 \n
줄 바꿈을 인쇄하지 마십시오. 이것은 당신이 뭔가를해야 할 의미 :
import time
import sys
sys.stdout.write('29 seconds remaining')
time.sleep(1)
sys.stdout.write('\r28 seconds remaining')
( 그것이 stdout
에 쓰는 것의 마지막에 줄 바꿈을 추가 않는 , print
를 사용하여 반대로.)
당신이 경우 xterm과 같은 출력 장치에서이 작업을 수행하는 방법은 출력을 오버 라이팅하는 것입니다. 숫자를 쓸 때 줄 바꿈없이 끝나는 캐리지 리턴으로 끝나야 커서가 다음 줄로 진행하지 않고 줄의 처음으로 돌아갑니다. 다음에 쓰는 출력은 현재 표시된 숫자를 대체합니다.
인쇄물을 변경할 수 없습니다. 인쇄 된 것이 인쇄됩니다. 그러나 bradley.ayers와 같이 선의 시작으로 돌아가서 새로운 가치를 지닌 새로운 것을 인쇄 할 수 있다고 말했다.
유닉스/리눅스를 타깃으로한다면 "curses"는 콘솔 프로그램을 작성하는 것을 매우 쉽게 만듭니다. 또한 customized completion 및 command history를 제공 할 수있는 readline 모듈을 사용할 수 있습니다 http://docs.python.org/library/curses.html
: 그것은 색, 커서 위치 등 파이썬 래퍼를 확인 처리합니다.
이것은 [회전 커서 문제] (http://stackoverflow.com/questions/4995733/how-to-create-a-spinning-command-line-cursor-using-python)의 변형입니다. –