本記事では、ファイルの操作を行えるopen関数の基本的な使い方を解説します。
open関数とは
open関数はPythonでファイルを扱う際に使用する組み込み関数です。指定したファイルを開き、読み込みや書き込みなどの処理を行うことができます。
主なモードと説明
モード | 説明 |
---|---|
r | テキストファイルを読み込み専用で開く |
w | テキストファイルを書き込み専用で開く(上書き) |
a | テキストファイルを追記専用で開く(末尾に追記) |
rb | バイナリファイルを読み込み専用で開く |
wb | バイナリファイルを書き込み専用で開く(上書き) |
x | 新規ファイル作成モード(ファイルが存在する場合はエラー) |
r+ | 読み書き両用モード |
使い方
以下ではopen関数の主な使用用途ごとに説明します。
ファイルを読み込む(rモード)
rモードでは、テキストファイルを読み込み専用で開きます。ファイルの中身をreadメソッドで取得し、処理が終わったらcloseメソッドでファイルを閉じます。
構文
open(ファイル名, 'r')
利用例
f = open('sample.txt', 'r')
content = f.read()
f.close()
print(content)
ファイルに書き込む(wモード)
wモードでは、書き込み用にファイルを開きます。既存ファイルがある場合は中身が上書きされる点に注意が必要です。ファイルが存在しない場合は新規作成されます。
構文
open(ファイル名, 'w')
利用例
f = open('output.txt', 'w')
f.write('こんにちは')
f.close()
ファイルに追記する(aモード)
aモードは、既存ファイルの末尾に新しい情報を追記する際に使用します。ファイルが存在しない場合は新規にファイルが作成されます。
構文
open(ファイル名, 'a')
利用例
f = open('output.txt', 'a')
f.write('追加の内容\\n')
f.close()
バイナリモードで操作する(rb, wbなど)
バイナリモード(rbやwb)を指定すると、バイナリデータを扱うことができます。画像ファイルや音声ファイルなどを読み書きする場合に利用します。
構文
open(ファイル名, 'rb')
open(ファイル名, 'wb')
利用例
# rbモードで読み込み
f = open('image.jpg', 'rb')
image_data = f.read()
f.close()
# wbモードで書き込み
f = open('copy.jpg', 'wb')
f.write(image_data)
f.close()
with文を使う
with文を使うと、ブロックを抜けたタイミングで自動的にファイルを閉じてくれます。closeメソッドの呼び出しを忘れるミスを防げるため、ファイル操作にはwith文の利用が推奨されます。
詳しい説明はこちら
構文
with open(ファイル名, モード) as f:
ファイル操作
利用例
with open('sample.txt', 'r') as f:
content = f.read()
print(content)
応用例: 1行ずつ読み込む
大きなファイルを扱う場合は、一度にすべてを読み込むのではなく1行ずつ処理する方法が効率的です。
with open('sample.txt', 'r') as f:
for line in f:
print(line.strip()) # 改行を除去して表示
まとめ
本記事では、open関数を用いた基本的なファイル操作の方法として、読み込み専用(r)、書き込み専用(w)、追記専用(a)、バイナリ操作(rb, wb)、そしてwith文の使用例を示しました。また、応用例として1行ずつ読み込む方法も紹介しました。
正しくモードを使い分けることで、安全かつ効率的にファイルを操作できます。ファイル操作の際は、ファイルを開いたら確実に閉じることを常に意識し、データ破損やリソースリークを防ぐようにしましょう。with文を使用すれば、この問題は簡単に解決できます。