
はじめてのPython | 第20回
1. はじめに
この回では、ファイルに文字を書き込む方法を学びます。前回は、ファイルを読み込む方法を確認しました。
Pythonでは、ファイルの内容を読むだけでなく、新しい内容を書き込んだり、あとから追記したりできます。ファイルへの書き込みができるようになると、メモや記録を保存する処理を作れるようになります。
2. この回で学ぶこと
write- 追記と上書きの違い
with open(..., "w")with open(..., "a")- ファイルを扱うときの注意点
3. 概念の説明
ファイルに文字を書き込むときは、open() で書き込み用にファイルを開きます。初学者向けの基本形は、with open(...) を使う書き方です。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write("Python\n")file.write("Python\n") は、ファイルに文字列を書き込む処理です。\n は改行を表します。
"w" は上書きモードです。このモードで開くと、すでにファイルがある場合は中身が新しい内容に置き換わります。ファイルがない場合は、新しく作られます。
一方で、あとから内容を追加したいときは "a" を使います。
with open("memo.txt", "a", encoding="utf-8") as file:
file.write("ファイル書き込み\n")"a" は追記モードです。このモードでは、すでにある内容を消さずに、ファイルの最後に新しい内容を追加します。
上書きと追記の違いは重要です。最初から内容を作り直したいときは "w"、今ある内容の後ろに足したいときは "a" を使います。
また、文字列を書き込むときは改行が自動では入りません。行を分けたいときは、自分で \n を入れる必要があります。
4. サンプルコード
次のコードを見てください。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write("Python\n")
file.write("ファイル書き込み\n")
with open("memo.txt", "a", encoding="utf-8") as file:
file.write("追記しました\n")このコードでは、最初に "w" でファイルを書き直し、そのあと "a" で1行追加しています。
5. 実行手順
まず、file_write.py というファイルを作ります。
touch file_write.pyfile_write.py をエディターで開き、次のコードを書いて保存します。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write("Python\n")
file.write("ファイル書き込み\n")
with open("memo.txt", "a", encoding="utf-8") as file:
file.write("追記しました\n")保存したら、ターミナルで次のコマンドを実行します。
python3 file_write.py実行後に memo.txt を開くと、内容は次のようになります。
Python
ファイル書き込み
追記しました6. コードの読み方
- 最初の
with open("memo.txt", "w", encoding="utf-8") as file:は、memo.txtを上書きモードで開いています。 - この時点で、すでに同じ名前のファイルがあれば中身は新しく書き直されます。
file.write("Python\n")は、Pythonという文字と改行を書き込んでいます。file.write("ファイル書き込み\n")も同じように、次の行を書き込んでいます。- 次の
with open("memo.txt", "a", encoding="utf-8") as file:は、同じファイルを追記モードで開いています。この場合は、すでにある内容の最後に新しい文字を書き足します。 file.write("追記しました\n")によって、3行目が追加されます。
7. 初学者がつまずきやすい点
write()は文字列を書き込むためのメソッド- 上書きには
"w"、追記には"a"を使う "w"は既存の内容を消して書き直す- 改行したいときは
\nを自分で書く - 初学者の段階では
with open(...)を基本形として覚える
特に、"w" を使うと前の内容は残りません。今ある内容を残したいのに "w" を使うと、意図せず消えてしまいます。
また、write("Python") のように \n を付けないと、次の write() の内容が同じ行につながって見えることがあります。
8. よくあるエラー
1つ目は、上書きと追記を混同してしまうことです。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write("追加したい内容\n")この書き方では、追加ではなく上書きになります。もとの内容を残したいなら "a" を使う必要があります。
2つ目は、文字列以外をそのまま write() に渡してしまうことです。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write(100)このときは、次のようなエラーになります。
TypeError: write() argument must be str, not intwrite() は文字列を書き込むためのものです。数値を書きたいときは、str(100) のように文字列に変換してから使います。
3つ目は、改行を入れ忘れて内容がつながってしまうことです。
with open("memo.txt", "w", encoding="utf-8") as file:
file.write("Python")
file.write("ファイル")この場合、ファイルの内容は次のようになります。
Pythonファイル行を分けたいなら、"Python\n" のように改行を入れる必要があります。
9. 練習用コード
次のコードを practice_file_write.py として保存して実行してください。
with open("note.txt", "w", encoding="utf-8") as file:
file.write("1行目\n")
file.write("2行目\n")実行したあとで、note.txt が作られ、2行入っていることを確認してください。
余裕があれば、そのあとで "a" を使って 3行目 を追記してください。
10. この回で理解しておくこと
write()はファイルに文字列を書き込む"w"は上書きモード"a"は追記モード- 改行したいときは
\nを使う - ファイル書き込みでも
with open(...)を基本にする
11. まとめ
今回は、ファイルに書き込む基本を確認しました。write を使うと、プログラムの結果をファイルに保存できます。
特に重要なのは、"w" と "a" の違いです。内容を置き換えるのか、最後に追加するのかを区別して使えるようにしてください。
12. 次回予告
次回は、エラー処理の基本を学びます。try と except を使って、エラーが起きたときの対応方法を確認します。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。










