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()
で書く癖をつけると、自然と安全な書き方が身につきます。