Pythonでファイルを開く・読み込む・書き込む方法(open() の使い方)
生徒
「先生、Pythonでファイルを開いたり、内容を書き込んだりする方法ってどうやるんですか?」
先生
「とても良い質問ですね。Pythonではopen()という関数を使って、ファイルを開いたり、読み込んだり、書き込んだりできますよ。」
生徒
「open関数ですか?それを使えば、パソコンの中のテキストファイルも読めるんですか?」
先生
「そうです。たとえば、メモ帳で作ったテキストファイルを読み取ったり、新しいファイルを作って文字を書き込むこともできます。では、実際に使い方を見てみましょう。」
1. open()関数とは?
Pythonのopen()関数は、「ファイルを開く」ための関数です。人間がノートを開いて書いたり読むように、Pythonでもファイルを開いて操作します。
open()関数の基本的な書き方は次の通りです。
open(ファイル名, モード)
ここで「ファイル名」は開きたいファイルの名前を文字列で指定します。「モード」は、ファイルをどのように扱うかを指定します。たとえば、「読む」「書く」「追加する」などのモードがあります。
2. ファイルを開いて読み込む(rモード)
ファイルを読み込みたいときは、モードに"r"(readの略)を指定します。たとえば、sample.txtというファイルの内容を読むには次のように書きます。
f = open("sample.txt", "r")
data = f.read()
print(data)
f.close()
このコードでは、open()でファイルを開き、read()で内容を読み取り、print()で表示しています。最後にclose()を呼び出してファイルを閉じます。これはノートを閉じるのと同じで、とても大切な処理です。
例えば、上のプログラムを実行すると、sample.txtに「こんにちは、Python!」と書かれていた場合、次のように出力されます。
こんにちは、Python!
ポイント: ファイルを開いたら、必ずclose()で閉じましょう。閉じないとデータが壊れたり、ファイルが使えなくなることがあります。
3. with構文を使うと便利!
open()でファイルを開いたあとに、close()を忘れてしまう人が多いです。そんなときはwith構文を使うと自動的に閉じてくれます。
with open("sample.txt", "r") as f:
data = f.read()
print(data)
この方法では、ブロック(インデントされた部分)が終わると、自動的にファイルが閉じられます。初心者の方には特におすすめです。
4. ファイルに書き込む(wモード)
次に、ファイルに文字を書き込む方法を学びましょう。書き込みたいときは、モードに"w"(writeの略)を指定します。
with open("output.txt", "w") as f:
f.write("Pythonでファイルに書き込みました!")
このプログラムを実行すると、同じフォルダにoutput.txtというファイルが作られ、その中に「Pythonでファイルに書き込みました!」という文字が保存されます。
Pythonでファイルに書き込みました!
注意: "w"モードを使うと、すでに存在するファイルの内容が消えて、新しい内容に上書きされます。上書きしたくない場合は次の「追記モード」を使いましょう。
5. 既存のファイルに追記する(aモード)
ファイルの末尾に新しい内容を追加したいときは、モードに"a"(appendの略)を使います。
with open("output.txt", "a") as f:
f.write("\n新しい行を追加しました。")
\nは改行を意味します。このコードを実行すると、output.txtの最後に新しい行が追加されます。
Pythonでファイルに書き込みました!
新しい行を追加しました。
6. ファイルを1行ずつ読む(readlineとreadlines)
ファイルの中身が複数行ある場合、すべてを一度に読むのではなく、1行ずつ処理したいことがあります。その場合はreadline()やreadlines()を使います。
# readline():1行ずつ読む
with open("sample.txt", "r") as f:
line = f.readline()
while line:
print(line.strip())
line = f.readline()
# readlines():全行をリストで取得
with open("sample.txt", "r") as f:
lines = f.readlines()
for line in lines:
print(line.strip())
どちらもよく使われる方法です。strip()は、行の最後にある改行文字を取り除くためのメソッドです。
7. ファイルモードの一覧
最後に、open()関数で使える主なモードを一覧にまとめておきます。
| モード | 意味 |
|---|---|
"r" | 読み込み専用(ファイルが存在しないとエラー) |
"w" | 書き込み専用(既存の内容を上書き) |
"a" | 追記モード(末尾に追加) |
"r+" | 読み書き両用(上書き可能) |
"b" | バイナリモード(画像や音声ファイル向け) |
たとえば、画像ファイルを開くときは"rb"を使います。テキストファイルでは"r"や"w"を使うのが基本です。
8. まとめ:open()を使えばファイル操作が自由自在
ここまで学んだように、open()関数を使えば、Pythonでファイルを開く・読む・書く・追記することが自由にできます。初心者のうちは、with open(...)を使って、自動でファイルを閉じる書き方を覚えると安全です。
ファイル処理は、ログの記録やデータの保存など、実践的なプログラムでは必ず使う重要な機能です。何度も練習して自然に書けるようになりましょう!