Pythonのopen()関数におけるモード(引数)の略語をわかりやすく解説!
こんにちは。ゆうせいです。
今回は、Pythonでファイルを読み書きする際によく使われる open()
関数について、新人エンジニア向けに丁寧に解説していきますね。
特に「r
って何?」「wb
とかって何が違うの?」という疑問を持っている方に向けて、引数の略語の意味をわかりやすく説明していきます!

Pythonの open()
関数とは?
Pythonでファイルを扱うには open()
関数を使います。
f = open("example.txt", "r")
この例では、「example.txt」というファイルを "r"
モードで開いています。
でもこの "r"
って、一体何なのでしょう?
ファイルを開くモードの略語一覧
以下の表に、open()
関数のモード(=第2引数)の略語と意味をまとめました。
モード | 読み方 | 意味 |
---|---|---|
'r' | read | 読み込み専用(既存ファイル) |
'w' | write | 書き込み専用(内容を全消去) |
'a' | append | 追記専用(内容を追加) |
'b' | binary | バイナリモード(画像や音声ファイル用) |
't' | text | テキストモード(文字ファイル、デフォルト) |
'x' | exclusive create | 新規作成(すでに存在していたらエラー) |
'+' | update | 読み書き両方可能にするオプション |
モードの組み合わせ例
モードは組み合わせて使うことができます。いくつか代表的な例を見てみましょう。
モード | 説明 |
---|---|
'rb' | バイナリファイルの読み込み(例:画像) |
'wb' | バイナリファイルの書き込み(例:音声データ保存) |
'r+' | 読み書き両方可能、ファイル内容は保持 |
'w+' | 読み書き両方可能、ファイル内容は削除される |
'a+' | 読み書き両方可能、追記モードで書く |
それぞれのモードの使い分け方
'r'
:読み込み専用モード
既に存在するファイルを読むだけのときに使います。
例えるなら、図書館の本を読むイメージです。中身を書き換えることはできません。
注意:ファイルが存在しないとエラーになります!
'w'
:書き込み専用モード
ファイルを書き込むけれど、中身は全部消されてしまうのがこのモード。
たとえるなら、真っ白なノートに書き始める感じ。
既存の内容が必要な場合は要注意です!
'a'
:追記モード
ファイルの最後にデータを追加したいときに使います。
たとえば、ログファイルのように、既存の記録を残しながら新しい記録を加えたいときに便利。
'b'
:バイナリモード
バイナリファイルとは、画像・音声・動画など「非テキストデータ」です。
これを扱うときは 'b'
を使います。
例:'rb'
で画像ファイルを読み込む。
't'
:テキストモード
デフォルトなので省略してもOK。普通のテキストファイルを扱うときはこちらを使います。
例:open("memo.txt", "r")
は open("memo.txt", "rt")
と同じ意味です。
'x'
:新規作成モード
ファイルが存在していないことを前提に新しく作るモード。
既に存在しているとエラーになります。重要なデータを上書きしないように使いたいときに有効です。
'+'
:更新モード(読み書き両方)
読みも書きもしたいなら '+'
を追加しましょう。
ただし、このときの書き込み動作は r
、w
、a
のどれと組み合わせるかによって異なります。
例:
'r+'
→ 中身は消さずに読み書きOK'w+'
→ 中身は消してから読み書きOK'a+'
→ 中身を消さず、追記しながら読みもできる
図で理解する:各モードのイメージ図
既存ファイル: [abcde]
モード 操作結果(内容)
-----------------------------
'r' 読むだけ → [abcde]
'w' 全消去して書く → []
'a' 書き足す → [abcde + 新規内容]
'r+' 読み書き(内容保持)→ 編集可
'w+' 読み書き(内容全消去)→ []
'a+' 読み書き(追記)→ [abcde + 新規内容]
よくあるエラーと注意点
'r'
モードでファイルが存在しないとFileNotFoundError
が出ます'w'
モードは既存のファイルを上書きしてしまうため、慎重に!'rb'
や'wb'
では、文字列ではなくbytes
型でデータを扱います
実際に使ってみよう!
例:画像ファイルを読み込む
with open("photo.jpg", "rb") as img:
data = img.read()
例:ログファイルに追記
with open("log.txt", "a") as log:
log.write("処理が完了しました\n")
まとめ
ファイルモードの引数は、たった一文字で大きく動作が変わる重要なパラメータです。
略語ばかりで最初はわかりにくいですが、一つ一つの意味を理解すると一気にスムーズになりますよ!
セイ・コンサルティング・グループでは、新人エンジニアの方がPythonプログラムを写経できるタイピングゲームを無償公開中です。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。