>백엔드 개발 >파이썬 튜토리얼 >Python\의 'print' 출력을 파일로 어떻게 리디렉션할 수 있나요?

Python\의 'print' 출력을 파일로 어떻게 리디렉션할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-01 07:39:11160검색

How Can I Redirect Python's `print` Output to a File?

'인쇄' 출력을 파일로 리디렉션

Python에서 '인쇄' 출력을 텍스트 파일로 리디렉션하려고 하면 사용자가 다음을 수행할 수 있습니다. 코드가 예상대로 작동하지 않으면 문제가 발생합니다. 이러한 경우 sys.stdout을 사용하여 출력을 리디렉션하면 예상치 못한 결과가 발생할 수 있습니다.

간단하고 권장되는 접근 방식은 파일 객체에 직접 인쇄하는 것입니다.

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x
    # print >> f, 'Filename:', filename   # Python 2.x

또는 일회성 스크립트인 경우 'sys.stdout'을 리디렉션하는 것이 적합할 수 있습니다.

import sys

orig_stdout = sys.stdout
f = open('out.txt', 'w')
sys.stdout = f

for i in range(2):
    print('i = ', i)

sys.stdout = orig_stdout
f.close()

Python 이후 3.4에서는 표준 라이브러리가 이 작업을 단순화하는 컨텍스트 관리자를 제공합니다.

from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')

셸에서 외부 리디렉션도 효과적인 옵션이 될 수 있습니다.

./script.py > out.txt

잠재적인 문제를 해결하려면 다음을 고려하세요. 초기화되지 않았을 수 있는 스크립트의 첫 번째 파일 이름을 확인합니다. 또한 폴더가 있는지 확인하고 'bamfiles'를 인쇄하면 파일 검색 관련 문제를 식별하는 데 도움이 될 수 있습니다. 최적의 코드 명확성을 위해 경로 및 파일 이름 조작에 'os.path.join' 및 'os.path.basename'을 활용하는 것이 좋습니다.

위 내용은 Python\의 'print' 출력을 파일로 어떻게 리디렉션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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