Pythonでプログラミングを始めると、避けて通れないのがファイルの読み書きです。テキストファイルを読み取ったり、計算結果をファイルに保存したりする際に使うのが、open()
関数です。この記事では、Pythonのopen()
関数の基本的な使い方から、知っておくべきモードの種類、注意点までを、子供から大人まで分かるように丁寧に解説していきます。
open()関数とは何か?Pythonでファイルを開く基本
Pythonでファイルを操作する際に必ず使うのがopen()
関数です。この関数は、ファイルを開いて中身を読んだり、新しくファイルを作ったり、すでにあるファイルに書き込んだりするために使います。
open()
関数の基本的な構文は以下の通りです。
open(ファイル名, モード)
- ファイル名:開きたいファイルの名前やパス(場所)を文字列で指定します。
- モード:どのようにファイルを開くかを指定する文字列です。
ファイルを開いたあとは、その内容を読み取ったり、書き込んだりした後、必ずファイルを閉じる必要があります。閉じるにはclose()
関数を使います。
file = open("sample.txt", "r")
data = file.read()
file.close()
open()関数のモードとは?目的に応じた使い方
open()
関数にはさまざまなモードがあります。モードとは、”どういう目的でファイルを開くか”を指定するものです。以下に代表的なモードを紹介します。
モード | 説明 |
---|---|
“r” | 読み込み専用(ファイルが存在しないとエラー) |
“w” | 書き込み専用(ファイルがなければ新規作成、あれば上書き) |
“a” | 追記専用(ファイルがなければ新規作成) |
“b” | バイナリモード(画像や音声などの非テキストファイル用) |
“x” | 新規作成専用(すでに存在するファイルがあるとエラー) |
“+” | 読み書き両用モード |
例:追記モードでファイルを開く
file = open("log.txt", "a")
file.write("ログを追記します\n")
file.close()
with構文を使った安全なファイル操作
ファイル操作の基本として、with
構文(コンテキストマネージャ)を使うことが推奨されています。
with
構文を使えば、ファイルを自動的に閉じてくれるため、プログラム中にエラーが出てもファイルを開きっぱなしにしてしまうことがありません。
with open("data.txt", "r") as file:
content = file.read()
print(content)
このように書くことで、file.close()
を書かなくてもよくなります。初心者の方にもおすすめの方法です。
読み込み・書き込みの具体例とその使い方
読み込みの例(”r”モード)
with open("sample.txt", "r") as f:
text = f.read()
print(text)
書き込みの例(”w”モード)
with open("output.txt", "w") as f:
f.write("こんにちは、Python!")
行ごとに読み込む
with open("sample.txt", "r") as f:
lines = f.readlines()
for line in lines:
print(line.strip())
追記の例(”a”モード)
with open("log.txt", "a") as f:
f.write("ログを追記しました\n")
ファイルのエンコーディング(文字コード)について
日本語の文字を含むファイルを扱うときには、エンコーディング(文字コード)に注意が必要です。
Pythonでは、標準でUTF-8という文字コードが使われていますが、WindowsではShift_JISが使われることもあります。そのため、ファイルを開くときに明示的にエンコーディングを指定するのが安全です。
with open("japanese.txt", "r", encoding="utf-8") as f:
content = f.read()
with open("japanese.txt", "r", encoding="shift_jis") as f:
content = f.read()
open()関数を使うときの注意点
- ファイルが存在しないとエラーになる(”r”モード)
- 書き込み(”w”モード)では既存の内容が消える
- 文字コードが合っていないと文字化けやエラーが起こる
- 大きなファイルを一気に読み込むとメモリ不足になることもある
必要に応じて、ファイルの存在確認や例外処理(try/except)も取り入れましょう。
try:
with open("sample.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print("ファイルが見つかりません")
まとめ
Pythonでファイルを開くにはopen()
関数の使い方を理解することが大切です。この記事では、基本構文からモードの種類、安全なwith
構文の使い方、エンコーディングの設定、注意点までを解説しました。
ファイル操作はPythonプログラミングの中でも重要なスキルの一つです。小学生でも理解できるように、ひとつずつ丁寧に学び、試してみることがスキルアップへの近道です。
次は実際に、自分でファイルを作って読み書きしてみましょう。