같은 위치에 콘솔 출력을 작성하는 것은 개발자가 Python 애플리케이션으로 작업할 때, 특히 명령줄에서 사용자 인터페이스를 개발하고, 진행률 표시기를 만들고, 콘솔 데이터를 실시간으로 업데이트할 때 유용한 기술이 될 수 있습니다. 이 기사에서는 콘솔 출력 덮어쓰기를 위한 솔루션에 대해 논의하고, 코드를 단계별로 설명하고, 이 작업을 가능하게 하는 특정 라이브러리와 내장 Python 함수에 대해 자세히 알아봅니다.
이를 달성하기 위해 텍스트 기반 사용자 인터페이스 사용에 크게 의존하는 터미널 기반 애플리케이션을 만들기 위해 특별히 설계된 유명한 Python 라이브러리 "curses"를 사용할 수 있습니다. 그러나 단순성과 이해의 용이성을 위해 Python의 내장 "sys" 및 "time" 모듈을 사용하여 콘솔 출력을 덮어씁니다.
Python에서 콘솔 출력 덮어쓰기
주요 아이디어는 sys.stdout.write() 이 기능을 사용하면 같은 줄에 인쇄할 수 있습니다. 캐리지 리턴 문자("r")를 사용하여 줄의 시작 부분으로 돌아가서 효과적으로 출력을 덮어쓸 수 있습니다.
다음은 Python을 사용하여 콘솔 출력을 덮어쓰는 예입니다.
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
코드의 단계별 설명
1. 먼저 필요한 모듈을 가져옵니다.
import time import sys
The 시간 모듈은 반복 사이에 지연을 추가하는 데 사용되며 sys 모듈은 콘솔에 출력을 쓰는 데 사용됩니다.
2. 다음으로, 진행률 카운터를 시뮬레이션하면서 숫자 범위를 반복하는 루프를 만듭니다.
for i in range(10):
이 루프는 0부터 9까지 반복되며 효과적으로 XNUMX번 실행됩니다.
3. 루프 내부에서 다음을 사용하십시오. sys.stdout.write() 라벨과 함께 현재 반복 번호를 인쇄하는 함수:
sys.stdout.write("rStep: %d" % i)
"r" 문자는 줄의 시작 부분으로 재설정되어 다음 출력이 현재 출력을 덮어쓸 수 있도록 하는 캐리지 리턴입니다.
4. 사용을 확인하십시오 sys.stdout.flush() 콘솔에 쓴 후:
sys.stdout.flush()
플러시() 함수는 내부 버퍼를 지우고 출력이 즉시 표시되도록 합니다.
5. 마지막으로 다음을 사용하여 지연을 추가합니다. 시간.수면() 기능:
time.sleep(1)
이 일시 중지는 XNUMX초 동안 지속되므로 덮어쓰는 출력을 더 쉽게 관찰할 수 있습니다.
이제 각 반복에서 콘솔 출력이 어떻게 덮어쓰여지는지 확인할 수 있습니다.
"sys" 라이브러리 개요
The sys 라이브러리는 인터프리터의 내부 및 다양한 시스템별 매개변수에 대한 액세스를 제공하는 강력한 내장 Python 모듈입니다. 이 기사에서는 다음을 사용하는 데 중점을 두었습니다. sys.stdout.write() and sys.stdout.flush() 콘솔 출력을 덮어쓰는 기능입니다. 그러나 "sys" 라이브러리는 명령줄 인수, 바이트 순서, 예외 및 사전 정의된 경로와 같은 다른 많은 기능을 제공합니다.
"시간" 라이브러리 개요
The 시간 라이브러리는 시간 조작 및 처리와 관련된 다양한 기능을 제공하는 또 다른 내장 Python 모듈입니다. 이 예에서는 시간.수면() 반복 사이에 지연을 생성하는 함수입니다. "시간" 라이브러리는 실행 시간 측정, 시간 형식 간 변환, 현재 시간 가져오기를 위한 다른 도구도 제공합니다. 이 모듈은 Python 애플리케이션에서 시간 관련 기능을 사용하거나 작업을 예약하는 개발자에게 필수적입니다.