Python의 파일로 인쇄 출력 리디렉션
-
write()
함수를 사용하여 Python에서 파일로 출력 인쇄 -
print()
함수를 사용하여 Python에서 파일로 출력 인쇄 -
sys.stdout
을 사용하여 Python에서 파일로 출력 인쇄 -
contextlib.redirect_stdout()
함수를 사용하여 Python에서 파일로 출력 인쇄
파이썬을 사용하여 수행 할 수있는 파일 처리에는 출력을 외부 파일로 리디렉션하는 작업이 한 가지 더 있습니다. 기본적으로 표준 출력은 사용자가 선택한 파일로 인쇄 할 수 있습니다. 이를 수행하는 방법에는 여러 가지가 있습니다.
이 자습서에서는 출력을 Python의 파일로 리디렉션하는 몇 가지 방법을 살펴 봅니다.
write()
함수를 사용하여 Python에서 파일로 출력 인쇄
이것은 지정된 텍스트를 파일에 작성하거나 추가하는 데 도움이되는 내장 Python 함수입니다. w
및a
는 파일에 텍스트를 쓰거나 추가하는이 함수의 두 가지 작업입니다. w
는 사용자가 파일을 쓰기 전에 파일을 비우고 싶을 때 사용됩니다. 반면a
는 사용자가 파일의 기존 텍스트에 일부 텍스트를 추가하고자 할 때 사용됩니다.
예:
with open("randomfile.txt", "a") as o:
o.write("Hello")
o.write("This text will be added to the file")
여기서open()
함수를 사용하여 파일을 엽니 다. 코드의a
는 텍스트가 파일에 추가되었음을 나타냅니다.
print()
함수를 사용하여 Python에서 파일로 출력 인쇄
이 메서드에서 먼저open()
함수를 호출하여 원하는 파일을 엽니 다. 그 후print()
함수를 사용하여 파일의 텍스트를 인쇄합니다. w
연산자 또는a
연산자를 사용하는 것은 항상 사용자의 선택입니다.
예:
with open("randomfile.txt", "w") as external_file:
add_text = "This text will be added to the file"
print(add_text, file=external_file)
external_file.close()
close()
함수는open()
으로 파일을 연 후 위 코드에서 파일을 닫는데도 사용됩니다. close()
함수를 호출 한 후에는 파일을 읽을 수없고 다른 것은 쓸 수 없습니다. 사용자가close()
함수를 호출 한 후 파일을 변경하려고하면 오류가 발생합니다.
sys.stdout
을 사용하여 Python에서 파일로 출력 인쇄
sys
모듈은 Python에서 런타임 환경의 다양한 부분을 처리하기 위해 사용자가 사용하는 내장 Python 모듈입니다. sys.stdout
을 사용하려면 먼저sys
모듈을 가져와야합니다.
sys.stdout
은 사용자가 화면의 메인 콘솔에 직접 출력을 표시하고자 할 때 사용됩니다. 출력의 형식은 다양 할 수 있습니다. 예를 들어 입력 프롬프트, 인쇄 명령문 또는 표현식 일 수 있습니다. 이 방법에서는 텍스트 파일에 명령문을 인쇄합니다.
예:
import sys
file_path = "randomfile.txt"
sys.stdout = open(file_path, "w")
print("This text will be added to the file")
sys.stdout
을 오브젝트로 사용하여 텍스트 파일에서 명령문을 열고 인쇄하기 전에 사용자가 파일의 명확한 경로를 정의해야합니다. 그렇지 않으면 파일에서 어떤 작업도 수행 할 수 없습니다.
contextlib.redirect_stdout()
함수를 사용하여 Python에서 파일로 출력 인쇄
contextlib
모듈은 일반적으로with
문과 함께 사용됩니다.
contextlib.redirect_stdout()
함수는 컨텍스트 관리자를 설정하여 일시적으로sys.stdout
을 일부 파일로 리디렉션하는 데 도움이됩니다.
예:
import contextlib
file_path = "randomfile.txt"
with open(file_path, "w") as o:
with contextlib.redirect_stdout(o):
print("This text will be added to the file")
보시다시피with
문은contextlib
모듈의 작업과 함께 사용됩니다.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn