'인쇄' 출력을 파일로 리디렉션
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!