with文を使用したファイル操作

Pythonのファイル操作においては、withを使用することで、安全かつ簡潔にファイルを扱うことができます。with文を使うことで、**ファイルの自動クローズ(close)**が保証され、リソースリークの防止につながります。


1. with文の基本構文

python
with open('ファイル名', 'モード', encoding='エンコーディング') as 変数名: ファイル操作
  • open()関数でファイルを開き、

  • asでファイルオブジェクトに別名(変数名)を付け、

  • withブロックを抜けると自動的に file.close() が実行されます。


2. 使用例:ファイルの読み込み(読み取りモード)

python
with open('example.txt', 'r', encoding='utf-8') as file: content = file.read() print(content)
  • 'r'は読み取り専用モード(read)。

  • file.read()で全内容を読み込みます。

  • with文を使っているため、明示的に file.close() を書く必要はありません。


3. 使用例:ファイルへの書き込み(書き込みモード)

python
with open('output.txt', 'w', encoding='utf-8') as file: file.write('これは書き込みテストです。')
  • 'w'は書き込み専用モード(write)。既存の内容は上書きされます。

  • file.write()で文字列を書き込みます。


4. 使用例:追記モードでの書き込み

python
with open('log.txt', 'a', encoding='utf-8') as file: file.write('新しいログエントリ\n')
  • 'a'は追記モード(append)。

  • 既存の内容を保持したまま、末尾にデータが追加されます。


5. with文のメリット

  • ファイルクローズの自動化with文を抜けると自動的にclose()が呼ばれる。

  • 例外発生時も安全:途中でエラーが発生しても、ファイルが必ず閉じられる。

  • コードの可読性向上:ファイル操作の開始と終了が明示的にわかる。


6. 注意点

  • 複数のファイルを同時に扱う場合も、カンマで区切って with 文に並べて書くことができます:

python
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: for line in infile: outfile.write(line)

with文を使うことで、Pythonのファイル操作は安全かつ簡潔になり、初心者から上級者まで広く推奨されています。

生成日:2025/05/03