1. はじめに
Pythonでプログラムを書く上で避けて通れないのが「ファイルの読み込み・書き込み」です。
この処理をマスターすることで、テキストデータの保存やログ記録、データの取得といった実用的なプログラムが作れるようになります。
本記事では、Pythonにおけるファイルの読み込み・書き込み方法を、初心者にもわかりやすく丁寧に解説します。具体的なコード例や実行結果も紹介するので、ぜひ実際に試して理解を深めてください。
2. Pythonにおけるファイルの読み書きの基本
2-1. ファイルを開くには「open関数」を使う
Pythonでファイル操作を行うには、open()
関数を使用します。この関数では、ファイル名とモードを指定します。よく使うモードは以下のとおりです。
'r'
:読み込みモード(Read)'w'
:書き込みモード(Write)※上書き'a'
:追記モード(Append)
2-2. ファイルの読み込み例
以下は、ファイルから中身を読み取る基本的なコードです。
# sample.txtを読み込む
with open("sample.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
実行結果:
Hello, Python!
This is a test file.
with
構文を使うことで、自動的にファイルが閉じられ、リソースの無駄遣いを防げます。
2-3. ファイルへの書き込み例
以下は、ファイルに文字列を書き込むコードです。
# sample.txtに書き込み(上書き)
with open("sample.txt", "w", encoding="utf-8") as f:
f.write("Pythonから書き込みました。\n")
実行結果:
※sample.txtの中身が「Pythonから書き込みました。」に更新される
3. よくある使い方・応用例
3-1. ファイルの各行を1行ずつ読み込む
readlines()
やfor文
を使えば、ファイルを行ごとに処理できます。
with open("sample.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # strip()で改行を除去
実行結果:
Pythonから書き込みました。
3-2. 複数行のテキストを書き込む
複数行のリストをwritelines()
でまとめて書き込むことができます。
lines = ["1行目のテキスト\n", "2行目のテキスト\n", "3行目のテキスト\n"]
with open("sample.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
実行結果:
※sample.txtには以下の内容が書き込まれます:
1行目のテキスト
2行目のテキスト
3行目のテキスト
3-3. ファイルが存在しない場合の安全な読み込み
os.path.exists()
を使うと、ファイルが存在するか事前にチェックできます。
import os
if os.path.exists("sample.txt"):
with open("sample.txt", "r", encoding="utf-8") as f:
print(f.read())
else:
print("ファイルが見つかりません。")
実行結果:
ファイルが見つかりません。
4. 注意点・エラー対策
4-1. 書き込みモードの注意点
'w'
モードは既存ファイルの内容を上書きします。元のデータが必要な場合は事前にバックアップを取るか、'a'
モードを使ってください。
4-2. 文字化け対策
日本語を含むファイルを扱う場合は、必ずencoding="utf-8"
を指定しましょう。指定しないと、文字化けやエラーの原因になります。
4-3. ファイルが開けない・パーミッションエラー
存在しないファイルを読み込もうとしたり、書き込み権限のない場所に保存しようとすると、FileNotFoundError
やPermissionError
が発生します。try-exceptで例外処理を追加しておくと安全です。
try:
with open("sample.txt", "r", encoding="utf-8") as f:
print(f.read())
except FileNotFoundError:
print("ファイルが存在しません。")
except PermissionError:
print("ファイルにアクセスできません。")
5. まとめ
今回は、Pythonにおける「ファイルの読み込み・書き込み」について、基本から応用までを具体的なコードとともに解説しました。ファイル操作は実務でも非常に出番が多く、ログ記録・データ保存・外部データの取得などに使われます。
初めのうちはopen()
とwith構文
をセットで覚え、読み込み・書き込みモードの違いを意識することがコツです。ぜひ、身近なテキストファイルを使って練習してみてください。