Python でファイルを読み取る方法 (テキストと JSON)

Python でファイルを読み取る方法を学びます。 with open ステートメント、readline、readlines、およびファイル例外の安全な処理をマスターします。

エディターでこのソリューションを試してください

概要

ファイル処理は、Python 開発者にとって必須のスキルです。ファイルからデータを読み取ると、テキスト ドキュメント、構成、ログ、データベース、構造化データセットを処理できます。 Python は、組み込みの `open()` 関数によってファイル操作を非常に簡単にします。

ファイルを操作する場合、最も重要なベスト プラクティスは、コンテキスト マネージャーを作成する「with」ステートメントを使用することです。 `with open(...)` パターンは、内部で例外が発生した場合でも、実行がブロックを離れるとすぐにファイルが安全かつ適切に閉じられることを保証します。ファイルを閉じ忘れると、メモリ リーク、ファイルの破損、および他のシステム プロセスからのリソースのロックが発生する可能性があります。

Python には、ファイルを開いた後にデータを読み取るためのメソッドがいくつか用意されています。 `.read()` メソッドは、ファイルの内容全体を単一の文字列として返します。 `.readline()` メソッドは単一行を読み取るため、メモリに収まらない巨大なファイルを反復処理するのに最適です。 `.readlines()` メソッドはすべての行を読み取り、文字列のリストとして返します。どの方法を使用するかを理解すると、メモリの枯渇を防ぎ、プログラムのスケーラビリティを高めることができます。

コードと実行の出力

このスクリプトは、コンテキスト マネージャーを使用したファイルの内容の安全な読み取り、行ごとの読み取り、およびエラー処理を示します。

# Writing a dummy file first
with open("sample.txt", "w") as f:
    f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")

# 1. Read entire file contents
with open("sample.txt", "r") as file:
    content = file.read()
    print("--- Entire File ---")
    print(content)

# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
    for line in file:
        print("Read line:", line.strip())
端子出力
--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.

--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.

段階的な実装

  • ファイルを安全に開いて読み取るには、 with open("filename", "r") as file ステートメントを使用します。
  • file.read() を呼び出して、ファイルの内容全体を変数にロードします。
  • for ループを使用してファイル オブジェクトを直接反復処理し、ファイルを 1 行ずつ効率的に読み取ります。
  • 国際文字互換性を確保するために、常にエンコーディング (encoding="utf-8" など) を指定してください。

よくある質問

ファイルを開くのに with ステートメントを使用する必要があるのはなぜですか?

with ステートメントは、エラーが発生した場合でもブロックの終了時にファイルを自動的に閉じるコンテキスト マネージャーを作成します。

FileNotFoundError を処理するにはどうすればよいですか?

open() ステートメントを try-excel ブロックでラップし、FileNotFoundError: try: with open(...) ... を除く FileNotFoundError: print("File not found!") をキャッチします。

関連トピック

推奨される Python リソース

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