Python ファイル I/O: ファイルの安全な読み取りと書き込み

Python でファイルを読み書きする方法を学びます。 open()、read()、write()、およびコンテキスト マネージャーをマスターして、リソース リークを発生させずにファイル操作を安全に処理します。

エディターで試してみる

概要

ファイル入出力 (I/O) は、Python プログラムがコンピューターの永続ストレージと対話できるようにする基本的な機能です。単純なロガーを構築する場合でも、構成ファイルを読み取る場合でも、大量のデータ配列を処理する場合でも、プログラムにはディスク上のファイルを開いたり、読み取り、書き込み、閉じたりするための信頼できる方法が必要です。 Python は、ファイル システムの対話を簡単かつクロスプラットフォームにするクリーンな組み込み関数を提供します。

Python でファイルにアクセスするための主なツールは、組み込みの `open()` 関数です。この関数はファイル パスとモード文字列を受け入れます。モードはファイルへのアクセス方法を決定します。読み取りの場合は「r」、書き込みの場合は「w」、(ファイルを上書きします)、コンテンツの最後への追加の場合は「a」、バイナリ モードの場合は「b」です(画像またはシリアル化されたデータに役立ちます)。重要なのは、ファイルを開くたびに、オペレーティング システムのハンドルが消費されるということです。ファイルを閉じるのに失敗すると、メモリ リークやファイル ロックの問題が発生する可能性があります。

ファイルが常に適切に閉じられることを保証するために、Python 開発者はコンテキスト マネージャーを実装する `with` ステートメントを使用します。 `with open(...) as file:` を使用すると、コード ブロックが終了すると、内部で予期しない例外が発生した場合でも、Python はファイル ハンドルを自動的に閉じます。データの読み取りは、「for line in file:」を使用して 1 行ずつ実行することも、「.read()」、「.readline()」、または「.readlines()」を使用して一度に実行することもできます。テキストの書き込みは `.write()` または `.writelines()` を介して処理され、スムーズで安全かつ効率的なファイル操作が可能になります。

コードと実行の出力

挨拶を一時テキスト ファイルに書き込み、安全なコンテキスト マネージャーを使用してそれを 1 行ずつ読み戻します。

filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
端子出力
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

段階的な実装

  • エラーとプログラム出力のログ記録
  • 設定ファイル (.env や config.txt など) の読み取り
  • ユーザーレポートまたはエクスポートされた分析概要の保存

よくある質問

書き込みモードと追加モードの違いは何ですか?

書き込みモード (「w」) は、ファイルの長さを 0 に切り詰め、書き込み前に既存のコンテンツを削除します。追加モード ('a') はカーソルを末尾に配置し、既存の内容を削除せずに新しいテキストを追加します。

with ステートメントを使用する必要があるのはなぜですか?

with ステートメントはコンテキスト マネージャーとして機能し、ファイルが自動的に閉じられるようにすることで、メモリ リークやロック ファイル エラーを防ぎます。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。