第20回|Pythonでファイルに書き込む方法とは?writeと追記・上書きの基本をやさしく解説|はじめてのPython

当サイトでは、コンテンツの一部に広告を掲載しています。
第20回|Pythonでファイルに書き込む方法とは?writeと追記・上書きの基本をやさしく解説|はじめてのPython

はじめての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.py

file_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 int

write() は文字列を書き込むためのものです。数値を書きたいときは、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. 次回予告

次回は、エラー処理の基本を学びます。tryexcept を使って、エラーが起きたときの対応方法を確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次