用語比較
open()のモード 'w' と 'a' の違い|上書きか、末尾に追加か(Python3基礎)
open()のモード 'w' と 'a' は、どちらもファイルに書き込むためのモードです。違いは、同名のファイルがすでにあるときの扱いです。'w' は書き込み専用で、同名の既存ファイルは消去されます。'a' は追記用で、書き込んだデータは自動的にファイルの末尾に追加されます。消してから書くなら w、足していくなら aと覚えると、使い分けやすくなります。
Python公式チュートリアル7.2は、modeは、ファイルを読むだけなら 'r'、書くだけなら 'w'(同名の既存ファイルは消去される)、'a' は追記のために開き、書き込んだデータは自動的に末尾へ追加され、'r+' は読み書きの両方のために開くと説明しています。mode引数は省略でき、省略すると 'r' とみなされます。
Python3エンジニア認定基礎試験は、公式チュートリアルの内容を章ごとの出題率で出題する形で、第7章の入力と出力も範囲です。この記事では、4つのモードの意味を、既存ファイルがあるときの動きで確認します。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
'w'
書き込み専用。同名の既存ファイルは消去される。
'a'
追記用。書き込んだデータは、自動的にファイルの末尾に追加される。
違いを表で確認
| 比較軸 | 'w' | 'a' |
|---|---|---|
| 既存の同名ファイル | 消去される | 残り、末尾に追加される |
| 用途 | 書くだけ(書き込み専用) | 追記のために開く |
| ほかのモードとの関係 | 読むだけなら 'r'、読み書きの両方なら 'r+' | 同じ。'r' は読み取り専用、'r+' は読み書きの両方 |
| mode引数を省略したとき | 'r' とみなされるので、書き込むには 'w' の指定が要る | 'r' とみなされるので、追記するには 'a' の指定が要る |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
書いたらファイルの中身が消えて困る人
'w' は、同名の既存ファイルを消去します。前の内容を残したいなら 'a' です。
mode引数を書かずにopen()した人
省略すると 'r' とみなされ、読み取り用に開かれます。書き込みたいなら、'w' か 'a' を指定します。
読み書きの両方をしたい人
チュートリアルは、'r+' が読み書きの両方のためにファイルを開くと説明しています。
具体例で使い分ける
例 1
既存ファイルがあるときのモードの動き
同名のファイルがすでにあり、そこへ新しい行を書き込みます。
- 'w' で開くと、同名の既存ファイルは消去されるため、書き込んだ行だけが残ります。
- 'a' で開くと、書き込んだデータは自動的に末尾へ追加されるため、元の内容のあとに新しい行が続きます。
結論: 既存の内容を残すかどうかが分かれ目です。残さないなら 'w'、残すなら 'a' です。
問題文から答えを選ぶ手順
- 1
読むか書くかを決める
読むだけなら 'r'、書くなら 'w'・'a'・'r+' のいずれかです。
- 2
既存の内容を残すかを決める
消去してよいなら 'w'、残して末尾に足すなら 'a' です。
- 3
読み書きの両方なら
'r+' を使います。
試験での見分け方
- 1'r' は、ファイルを読むだけのときのモードである。
- 2'w' は書き込み専用で、同名の既存ファイルは消去される。
- 3'a' は追記用で、書き込んだデータは自動的に末尾へ追加される。
- 4'r+' は、読み書きの両方のためにファイルを開く。
- 5mode引数は省略でき、省略すると 'r' とみなされる。
誤答しやすい選択肢
'w' で開けば、末尾に追加されると考える
修正: 'w' は同名の既存ファイルを消去します。末尾に追加するのは 'a' です。
mode省略で書き込めると考える
修正: 省略時は 'r' とみなされます。書き込むには 'w' か 'a' を指定します。
'a' を、読み書きの両方のモードと考える
修正: 'a' は追記用です。読み書きの両方は 'r+' です。
確認問題
Q1同名の既存ファイルを消去して書き込み専用で開くモードは?
答え: 'w'
チュートリアル7.2が、'w' は書くだけで、同名の既存ファイルは消去されると説明しています。
Q2書き込んだデータが自動的に末尾へ追加されるモードは?
答え: 'a'
チュートリアル7.2が、'a' は追記のためにファイルを開くと説明しています。
Q3mode引数を省略したとき、とみなされるモードは?
答え: 'r'
チュートリアル7.2が、mode引数は省略でき、省略すると 'r' とみなされると説明しています。
到達チェック
- 'w' と 'a' の既存ファイルの扱いを言い分けられる
- 'r+' が読み書きの両方のモードだと説明できる
- mode省略時が 'r' であることを説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- json.dump()とjson.dumps()の違い|ファイルに書くか、文字列で受け取るか(Python3基礎)
json.dump()とjson.dumps()の違いを、出力先で整理します。Python公式チュートリアル7.2.2の記述、json.dumps([1, 'simple', 'list'])の結果、json.load()との対応、確認問題つき。
- str()とrepr()の違い|読みやすい表現か、インタプリタが読める表現か(Python3基礎)
str()とrepr()の違いを、表現の目的で整理します。Python公式チュートリアル7.1の記述、str(s)とrepr(s)の結果の差、確認問題つき。
- イテレータとジェネレータの違い|クラスで書くか、yieldで書くか(Python3基礎)
イテレータとジェネレータの違いを、書き方と自動で作られるものの差で整理します。Python公式チュートリアル9.8〜9.10の記述、__iter__()・__next__()・StopIterationの扱い、ジェネレータ式との関係、確認問題つき。
よくある質問
Qopen()の 'w' モードとは?
書き込み専用で開くモードです。同名の既存ファイルは消去されます。
Qopen()の 'a' モードとは?
追記のために開くモードです。書き込んだデータは自動的にファイルの末尾へ追加されます。
Q'w' と 'a' の違いは?
既存ファイルの扱いです。'w' は消去し、'a' は残して末尾に追加します。
QPython3基礎試験の範囲?
公式の出題範囲は公式チュートリアルの章単位で、第7章の入力と出力と、7.2のファイルの読み書きを含みます。出題の形式は受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
