Python で出力出力をファイルにリダイレクトする

Lakshay Kapoor 2023年1月30日
  1. Python で write() 関数を使用して出力をファイルに出力する
  2. Python で print() 関数を使用して出力をファイルに出力する
  3. Python で sys.stdout を使用して出力をファイルに出力する
  4. Python で contextlib.redirect_stdout() 関数を使用して出力をファイルに出力する
Python で出力出力をファイルにリダイレクトする

Python を使用して実行できるファイル処理には、もう 1 種類のタスクがあります。つまり、出力を外部ファイルにリダイレクトします。基本的に、標準出力は、ユーザー自身が選択したファイルに出力できます。これを実行する方法はたくさんあります。

このチュートリアルでは、Python で出力をファイルにリダイレクトするいくつかの方法を紹介します。

Python で write() 関数を使用して出力をファイルに出力する

これは、指定されたテキストをファイルに書き込んだり追加したりするのに役立つ組み込みの Python 関数です。wa は、ファイルにテキストを書き込んだり追加したりするこの関数の 2つの操作です。w は、ユーザーがファイルに何かを書き込む前にファイルを空にしたい場合に使用されます。一方、a は、ユーザーがファイル内の既存のテキストにテキストを追加したい場合に使用されます。

例:

with open("randomfile.txt", "a") as o:
    o.write("Hello")
    o.write("This text will be added to the file")

ここでは、open() 関数を使用してファイルを開くことに注意してください。コード内の a は、テキストがファイルに追加されたことを示します。

Python で print() 関数を使用して出力をファイルに出力する

このメソッドでは、最初に 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()

open() 関数は、open() でファイルを開いた後、上記のコードでファイルを閉じるためにも使用されることに注意してください。close() 関数を呼び出した後、ファイルを読み取ることはできず、他に何も書き込むことはできません。ユーザーが close() 関数を呼び出した後にファイルに変更を加えようとすると、エラーが発生します。

Python で sys.stdout を使用して出力をファイルに出力する

sys モジュールは、Python のランタイム環境のさまざまな部分を処理するためにユーザーが使用する組み込みの Python モジュールです。sys.stdout を使用するには、最初に sys モジュールをインポートする必要があります。

sys.stdout は、ユーザーが出力を画面のメインコンソールに直接表示する場合に使用されます。出力の形式はさまざまです。たとえば、入力のプロンプト、print ステートメント、または単なる式にすることができます。このメソッドでは、ステートメントをテキストファイルに出力します。

例:

import sys

file_path = "randomfile.txt"
sys.stdout = open(file_path, "w")
print("This text will be added to the file")

sys.stdout をオブジェクトとして使用してテキストファイル内のステートメントを開いて出力する前に、ファイルの明確なパスをユーザーが定義する必要があります。そうしないと、ファイルに対して操作を実行できません。

Python で contextlib.redirect_stdout() 関数を使用して出力をファイルに出力する

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
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