← トップ
20 / 20

20. ファイル入出力(open, read, write)

CONCEPT

ファイル入出力file I/O(ファイル入出力)。ファイルの読み書きは、プログラムからファイルを読み込んだり、書き込んだりする方法です。configコンフィグ — 設定ファイルの読み込みや、ログの保存などで使います。

📍 使い道: 在庫データをCSVファイルに保存・読み込み
COMMON MISTAKES — よくある間違い
ファイルを閉じ忘れるopen() したら close() が必要。with open() を使えば自動で閉じます。
エンコーディングを指定しないopen("file.txt", encoding="utf-8") のように encoding を指定しないと、環境によって文字化けします。
コードを1行ずつ実行してみよう
example.pyPython
1config = {"bot_name": "アシスタント", "language": "ja", "max_retry": 3}# config に3つのキーを持つ辞書を作成
2with open("config.json", "w", encoding="utf-8") as f:# config.json を書き込みモード("w")で開く
3 json.dump(config, f, ensure_ascii=False, indent=2)# json.dump で config の内容を JSON 形式でファイルに書き込む
4with open("config.json", "r", encoding="utf-8") as f:# config.json を読み込みモード("r")で開き、json.load で loaded_config に復元
« 次の行 » ボタンを押して実行を開始
VARIABLES
実行すると変数の状態が表示されます
ファイル入出力は「データをファイルに保存・読み込みする」機能です。 open()でファイルを開き、write()で書き込み、read()で読み込みます。 プログラムを終了してもデータが残るようにする仕組みです。
📚 読み方ガイド
コード読み方
open("file.txt", "w")"file.txt" を書き込みモードで開く
open("file.txt", "r")"file.txt" を読み込みモードで開く
f.write("テキスト")fファイルオブジェクト(英: file)に1行書き込む
f.read()fファイルオブジェクト(英: file)全体を文字列として読み込む
KEY POINT

モード: "r"=読み込み, "w"=書き込み(上書き), "a"=追記。encoding="utf-8" は日本語扱う時のおまじない。

確認問題
1このコードはファイルに何を書き込みますか?
with open("memo.txt", "w", encoding="utf-8") as f: f.write(" groceries: ") f.write(" - 牛乳 ")
ファイル "memo.txt" に3行のテキストが書き込まれます。"w" モードなので既存の内容は上書きされます。
2"w" モードと "a" モードの違いは?
# "w" モード with open("log.txt", "w") as f: f.write("新しい内容") # "a" モード with open("log.txt", "a") as f: f.write("追加内容")
"w" は上書き(既存内容が消える)。"a" は追記(既存内容の後ろに追加)。
33行書き込んだ後、このコードは何を表示しますか?
with open("order_log.txt", "r", encoding="utf-8") as f: lines = f.readlines() print(f"{len(lines)}行")
"3行" と表示されます。readlines() は1行ずつリストとして読み込みます。
CHEAT SHEET — まとめ
3行で分かる
  • プログラムからファイルを読み込む・書き込む仕組み
  • with open(...) で安全に開いて自動で閉じる
  • encoding="utf-8" 指定が文字化け対策の鉄則
ファイル入出力