【Python基礎】with文で安全なファイル操作|closeの自動化

with構文を使った安全なファイル操作

with 構文(コンテキストマネージャ)を使うと、ファイルを確実に閉じてくれるので安全です。

1. withを使う理由

# ❌ withなし:エラーが起きるとclose()されない危険がある
f = open("data.txt", "r", encoding="utf-8")
content = f.read()
f.close()   # これを忘れるとファイルロックが残る

# ⭕ withあり:ブロックを出ると自動的にclose()される
with open("data.txt", "r", encoding="utf-8") as f:
    content = f.read()
# ここでは既にファイルは閉じられている
print("ファイル操作完了")
▶ 出力結果

ファイル操作完了

2. 複数ファイルを同時に開く

with open("input.txt", "r", encoding="utf-8") as fin,      open("output.txt", "w", encoding="utf-8") as fout:
    for line in fin:
        fout.write(line.upper())   # 大文字に変換して書き出す

print("変換完了!")
▶ 出力結果

変換完了!

3. ファイルが存在しない場合の安全な処理

def read_file_safe(path):
    try:
        with open(path, "r", encoding="utf-8") as f:
            return f.read()
    except FileNotFoundError:
        return f"エラー:{path} が見つかりません"

print(read_file_safe("existing.txt"))
print(read_file_safe("missing.txt"))
▶ 出力結果

ファイルの内容...
エラー:missing.txt が見つかりません
< 前の記事ファイルへの書き込みと追記
次の記事 >CSVファイルの読み書き(入門編)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール