>백엔드 개발 >파이썬 튜토리얼 >Python에서 같은 줄에 있는 이전 인쇄 출력을 어떻게 덮어쓸 수 있습니까?

Python에서 같은 줄에 있는 이전 인쇄 출력을 어떻게 덮어쓸 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-08 18:20:11363검색

How Can I Overwrite Previous Print Outputs on the Same Line in Python?

같은 줄의 이전 인쇄 출력 재정의

프로그래밍에서는 표시되는 기존 값을 업데이트해야 하는 상황에 직면하는 것이 일반적입니다. 개행을 추가하지 않고 표준 출력(stdout). 다음 Python 코드를 고려해 보세요.

for x in range(10):
    print(x)

이 코드는 1부터 10까지의 숫자를 별도의 줄에 출력합니다. 이전 값을 덮어쓰고 같은 줄의 새 값으로 바꾸려면 다음 기술을 활용할 수 있습니다.

간단 버전:

캐리지 리턴( 'r') 문자를 사용하면 다음 줄로 넘어가지 않고 줄의 처음으로 돌아갑니다.

Python 3:

for x in range(10):
    print(x, end='\r')
print()

Python 2.7 이후 버전 호환:

from __future__ import print_function
for x in range(10):
    print(x, end='\r')
print()

Python 2.7:

for x in range(10):
    print '{}\r'.format(x),
print

파이썬 2.0-2.6:

for x in range(10):
    print '{0}\r'.format(x),
print

이 예에서 print 문 뒤의 쉼표는 개행을 억제합니다. 최종 print 문은 다음 줄로 진행되어 프롬프트가 출력을 덮어쓰지 않도록 합니다.

줄 정리:

새 줄이 인쇄되도록 보장할 수 없는 경우 텍스트 길이가 기존 줄보다 짧지 않은 경우 "줄 끝까지 지우기" 이스케이프 시퀀스 'x1b[1K' ('x1b' = ESC):

for x in range(75):
    print('*' * (75 - x), x, end='\x1b[1K\r')
print()

긴 줄 바꿈:

앞서 언급한 방법에서는 줄 길이를 넘어서 쓰지 않는다고 가정합니다. 캐리지 리턴은 현재 줄의 시작 부분으로만 돌아갑니다. 따라서 출력이 줄 길이를 초과하면 마지막 줄만 삭제됩니다.

이 문제를 완화하고 커서가 다음 줄로 넘어가는 것을 방지하려면 줄 바꿈을 비활성화할 수 있습니다.

print('\x1b[7l', end='')    # Disable line wrapping
print('\x1b[7h', end='')    # Re-enable line wrapping

터미널이 손상된 상태로 유지되지 않도록 하려면 코드 블록 끝에서 줄 바꿈을 수동으로 다시 활성화해야 합니다.

위 내용은 Python에서 같은 줄에 있는 이전 인쇄 출력을 어떻게 덮어쓸 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.