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 でカスタム コンテキスト マネージャーを作成する方法を学びます。リソースの安全性を確保するために、contextmanager デコレーターと __enter__/__exit__ メソッドをマスターします。
Python JSON 解析Python で JSON データを読み取り、書き込み、解析する方法を学びます。 json.loads、json.dumps、および JSON エンコーダー/デコーダーのカスタマイズをマスターします。
Python CSVPython で CSV データを処理する方法を学びます。効率的なテーブル解析のために csv.reader、csv.writer、および DictReader/DictWriter をマスターします。
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python でファイルを読み取る方法
Python でファイルを読み取る方法を学びます。 with open ステートメント、readline、readlines、およびファイル例外の安全な処理をマスターします。
Python 辞書メソッドのチートシート
Python の辞書メソッドを学習します。キーと値のペアの挿入、取得、更新、チェックに関する完全なリファレンス ガイド。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。