Python|ファイルを開く・閉じる

1. はじめに

Pythonでプログラムを書くとき、「ファイルを開く・閉じる」処理は非常に基本的でありながら重要な操作です。ログの記録やデータの保存、設定ファイルの読み込みなど、実務でも頻繁に使われます。

本記事では、Pythonでのファイル操作の基本であるopen()関数やclose()メソッドの使い方、便利なwith構文、さらにはエラーを防ぐための注意点まで、具体的なコードと一緒に丁寧に解説します。

 

2. Pythonでファイルを開く・閉じる基本

2-1. open()とclose()の基本構文

Pythonではopen()関数を使ってファイルを開き、close()メソッドでファイルを閉じます。

# ファイルを開いて書き込み、閉じる
f = open('sample.txt', 'w')  # 書き込みモードで開く
f.write('こんにちは、Python!')  # ファイルに書き込む
f.close()  # ファイルを閉じる

実行結果:

(ファイルに「こんにちは、Python!」と書き込まれる)

ファイルを閉じないままだと、データが保存されなかったり、ファイルがロックされたりすることがあるので注意が必要です。

2-2. モード(’r’、’w’、’a’など)の違い

open()には、開き方を指定する「モード」があります。よく使うものは以下の通りです。

  • 'r':読み込み専用(デフォルト)
  • 'w':書き込み専用(既存ファイルは上書き)
  • 'a':追記モード(既存内容の末尾に追加)
  • 'rb', 'wb':バイナリモード(画像やPDFなど)
# 読み込みモードで開いて内容を表示
f = open('sample.txt', 'r')
print(f.read())
f.close()

実行結果:

こんにちは、Python!

 

3. よくある使い方・応用例

3-1. with open()構文で自動的に閉じる

ファイル操作で推奨される書き方がwith open()構文です。これを使うと、ファイルの開閉を自動で処理できるため、close()の書き忘れによるバグを防げます。

# with構文でファイルを開く
with open('sample.txt', 'r') as f:
    content = f.read()
    print(content)

実行結果:

こんにちは、Python!

withを使えば、処理が終わると自動的にファイルを閉じてくれます。

3-2. ファイルの各行を読み込む(ループ処理)

# 複数行のファイルを1行ずつ読み込む
with open('sample.txt', 'r') as f:
    for line in f:
        print(line.strip())  # strip()で改行を除去

実行結果:

こんにちは、Python!

3-3. 書き込みモードでリストを書き込む

# リストの内容をファイルに書き込む
lines = ['1行目', '2行目', '3行目']
with open('list.txt', 'w') as f:
    for line in lines:
        f.write(line + '\n')

実行結果:

(list.txt に 1行目〜3行目 が書き込まれる)

 

4. 注意点・エラー対策

4-1. ファイルが存在しない場合のエラー

読み込みモード('r')で存在しないファイルを開くと、FileNotFoundErrorが発生します。

try:
    with open('not_exist.txt', 'r') as f:
        print(f.read())
except FileNotFoundError:
    print("ファイルが見つかりませんでした")

実行結果:

ファイルが見つかりませんでした

4-2. 書き込み時の上書きに注意

'w'モードでファイルを開くと、既存の内容は完全に上書きされます。重要なファイルに対しては十分注意してください。

4-3. エンコーディングエラーを避ける

特に日本語を扱う場合は、encoding='utf-8'の指定を明示的に入れることをおすすめします。

with open('jp_text.txt', 'w', encoding='utf-8') as f:
    f.write("こんにちは!")

実行結果:

(jp_text.txt に「こんにちは!」が書き込まれる)

 

5. まとめ

  • Pythonでファイルを開くにはopen()を使い、閉じるにはclose()を使う
  • with open()構文を使うと、自動的にファイルを閉じてくれるため安全
  • ファイルモード(’r’、’w’、’a’など)を正しく理解し、使い分けることが大切
  • エンコーディングやファイル存在の有無にも注意

実務では、ログ記録・設定読み込み・データ出力などで頻繁に使われます。正しいファイル操作を習得すれば、安心してアプリケーション開発に取り組めます。

学習のコツ: ファイルの読み書きをするスクリプトを毎回with open()で書く癖をつけると、自然と安全な書き方が身につきます。

タイトルとURLをコピーしました