본문 바로가기
Python/Python FAQ

Python 새 줄이나 공백 없이 출력하는 방법, How to print without a newline or space

by 베타코드 2023. 5. 7.
반응형

질문


Python에서 print를 사용한 다음 예시를 고려해보세요:

>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .

각 값 사이에 새 줄 또는 공백이 추가됩니다. 출력이 ....이 되도록 이를 피하는 방법은 무엇인가요? 다른 말로, 표준 출력 스트림에 문자열을 "추가"하는 방법은 무엇인가요?


답변


Python 3에서는 print 함수의 sep=end= 매개변수를 사용할 수 있습니다:

문자열 끝에 개행을 추가하지 않으려면:

print('.', end='')

출력하려는 모든 함수 인수 사이에 공백을 추가하지 않으려면:

print('a', 'b', 'c', sep='')

어떤 문자열이든 두 매개변수에 모두 전달할 수 있으며, 동시에 두 매개변수를 사용할 수 있습니다.

버퍼링 문제가 발생하는 경우 flush=True 키워드 인수를 추가하여 출력을 플러시 할 수 있습니다:

print('.', end='', flush=True)

Python 2.6 및 2.7

Python 2.6부터는 __future__ 모듈을 사용하여 Python 3에서 print 함수를 가져올 수 있습니다:

from __future__ import print_function

이렇게 하면 Python 3 솔루션을 사용할 수 있습니다.

그러나 Python 2에서 __future__에서 가져온 print 함수 버전에서는 flush 키워드가 사용 불가능합니다. 이것은 Python 3에서만 작동합니다. 더 구체적으로 3.3 이상에서만 작동합니다. 이전 버전에서는 수동으로 sys.stdout.flush()를 호출하여 플러시해야합니다. 또한 이러한 가져오기를 수행하는 파일에서 다른 모든 print 문을 다시 작성해야합니다.

또는 sys.stdout.write()를 사용할 수 있습니다.

import sys
sys.stdout.write('.')

stdout가 즉시 플러시되도록 하려면 다음을 호출해야 할 수도 있습니다.

sys.stdout.flush()
반응형

댓글