Python의 파일로 인쇄 출력 리디렉션

Lakshay Kapoor 2023년1월30일
  1. write()함수를 사용하여 Python에서 파일로 출력 인쇄
  2. print()함수를 사용하여 Python에서 파일로 출력 인쇄
  3. sys.stdout을 사용하여 Python에서 파일로 출력 인쇄
  4. contextlib.redirect_stdout()함수를 사용하여 Python에서 파일로 출력 인쇄
Python의 파일로 인쇄 출력 리디렉션

파이썬을 사용하여 수행 할 수있는 파일 처리에는 출력을 외부 파일로 리디렉션하는 작업이 한 가지 더 있습니다. 기본적으로 표준 출력은 사용자가 선택한 파일로 인쇄 할 수 있습니다. 이를 수행하는 방법에는 여러 가지가 있습니다.

이 자습서에서는 출력을 Python의 파일로 리디렉션하는 몇 가지 방법을 살펴 봅니다.

write()함수를 사용하여 Python에서 파일로 출력 인쇄

이것은 지정된 텍스트를 파일에 작성하거나 추가하는 데 도움이되는 내장 Python 함수입니다. wa는 파일에 텍스트를 쓰거나 추가하는이 함수의 두 가지 작업입니다. 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 avatar Lakshay Kapoor avatar

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

관련 문장 - Python Print