Pythonでファイルを安全に操作!「with open」の基本

投稿者: | 2026-04-06

Pythonでファイル操作を行う際、ファイルの開閉はとても重要なプロセスです。特に、ファイルを閉じる処理を忘れてしまうと、意図しないエラーやリソースリークの原因になることがあります。そんな時に役立つのが、今回ご紹介するwith openステートメントです。

with openを使うと、ファイルの開閉処理をPythonが自動で管理してくれるため、書き忘れによるトラブルを防ぎ、安心してファイル操作を行うことができます。

ファイルに書き込む方法 (`’w’`)

新しいファイルを作成してテキストを書き込んだり、既存のファイルを上書きしたりする場合は、モードに'w'を指定します。ファイルが存在しない場合は新規作成され、存在する場合は中身がクリアされてから書き込まれます。

# 'my_document.txt'というファイルを作成し、内容を書き込みます。
# encoding='utf-8' は、文字化けを防ぐためによく指定されます。
with open('my_document.txt', 'w', encoding='utf-8') as f:
    f.write('こんにちは、Pythonの世界!\n')
    f.write('これはファイルに書き込んだ内容です。\n')
    f.write('with open を使うと、ファイルは自動で閉じられます。\n')

print('my_document.txt に書き込みが完了しました。')

ファイルから読み込む方法 (`’r’`)

ファイルに書かれた内容を読み込む場合は、モードに'r'を指定します。

# 'my_document.txt'ファイルから内容を読み込みます。
# ファイルが存在しない場合はエラーになります。
with open('my_document.txt', 'r', encoding='utf-8') as f:
    # f.read()でファイルの内容すべてを文字列として読み込みます。
    content = f.read()
    print('--- my_document.txt の内容 ---')
    print(content)

print('my_document.txt の読み込みが完了しました。')

ファイルに追記する方法 (`’a’`)

既存のファイルの末尾に内容を追加したい場合は、モードに'a'を指定します。ファイルが存在しない場合は新規作成されます。

# 'my_document.txt'の末尾に新しい行を追記します。
with open('my_document.txt', 'a', encoding='utf-8') as f:
    f.write('追記した新しい行です。\n')
    f.write('これでファイルの内容が更新されました。\n')

print('my_document.txt に追記が完了しました。')

# 追記後の内容を確認するために、再度読み込んでみましょう。
with open('my_document.txt', 'r', encoding='utf-8') as f:
    content_after_append = f.read()
    print('--- 追記後の my_document.txt の内容 ---')
    print(content_after_append)

with openを使えば、ファイルの取り扱いがとてもシンプルになり、バグの心配も減らせます。ぜひ活用してみてくださいね!

みーちゃんのワンポイント

with open文は、ファイルを扱うだけでなく、データベース接続やネットワーク通信など、特定の期間だけリソースを使いたい場合に非常に便利な「コンテキストマネージャ」という仕組みを活用しています。これにより、リソースの取得から解放までを自動で行ってくれるんですよ。