📂Pythonファイル操作入門!open関数とwith文でテキストファイルを安全に読み書きする方法

📂 Pythonでファイル操作ができると世界が広がる

Pythonでプログラムを書いていて「処理結果をどこかに保存したい」「外部のテキストファイルからデータを読み込んで使いたい」と思ったことはありませんか?プログラムは実行が終わると変数の中身が消えてしまうため、データを永続的に残すにはファイルへの読み書きが必須です。

ファイル操作をマスターすれば、ログを記録したり、設定ファイルを読み込んだり、集計結果をテキストに書き出したりと、Pythonでできることが一気に広がります✨。今日この基本を押さえれば、明日から実用的なツールを自分で作れるようになりますよ🚀

📖 まずは全体像:ファイル操作の流れ

Pythonでファイルを扱うときは、次の3ステップが基本です。

  • 1️⃣ ファイルを開くopen() 関数でファイルオブジェクトを作る)
  • 2️⃣ 読み書きを行うread()write() などのメソッドを呼ぶ)
  • 3️⃣ ファイルを閉じるclose() で後始末する)

今回扱うのはテキストファイルです。CSV・JSON・XML・Excelなどは専用モジュール(csvjson など)を使った方が便利なので、それぞれ別途学ぶのがおすすめです📚

🔧 open()関数の基本:ファイルオブジェクトを作る

ファイル操作の起点となるのが open() 関数です。第1引数にファイルのパス、第2引数にモードを指定して、ファイルオブジェクトを取得します。

f = open("test.txt", "r")

🎛️ モードの種類を覚えよう

  • 📖 "r"(read):読み込み専用。デフォルト。ファイルが存在しないとエラー
  • ✏️ "w"(write):書き込み専用。ファイルがなければ新規作成、あれば上書き(既存内容は消える)
  • "a"(append):追記モード。ファイルの末尾に書き足す
  • 🔄 "r+":読み書き両方OK

「上書きされて困った!」という事故は "w" モードの典型的な落とし穴。追記したいなら "a" を使うことを忘れずに⚠️

🛡️ with文を使えば閉じ忘れゼロ

open() で開いたファイルは必ず close() で閉じる必要があります。閉じ忘れるとファイルが破損したり、メモリリークの原因になったりと、地味に怖いトラブルの元になります。

そこで使うのが withです。with ブロックを抜けると自動でファイルが閉じられるので、閉じ忘れの心配がありません。

with open("test.txt", "r") as f:
    # ここでファイル操作
    s = f.read()
# withを抜けた時点で自動的にcloseされる

変数名は慣習的に小文字の f を使うことが多いです。ファイル操作はwith文を使うのが現代Pythonの標準スタイルと覚えておきましょう✨

📥 ファイルを読み込む3つのメソッド

ファイルから内容を取り出す方法は、用途に応じて3つあります。

📜 read():全部まとめて文字列で取得

with open("test.txt", "r") as f:
    s = f.read()
print(s)

ファイル内のすべての行が、改行コード込みで1つの文字列として返ります。小〜中サイズのファイルを丸ごと処理したいときに便利です。

📄 readline():1行ずつ取得

with open("test.txt", "r") as f:
    s = f.readline()  # 1行目
    s = f.readline()  # 2行目
    s = f.readline()  # 3行目

呼ぶたびに次の1行が取れます。ファイル末尾まで読み終わると空文字列 "" が返ってくるので、while ループで終端判定するのが定番のパターンです。

with open("test.txt", "r") as f:
    while True:
        line = f.readline()
        if line == "":
            break
        print(line, end="")

📚 readlines():全行をリストで取得

with open("test.txt", "r") as f:
    lines = f.readlines()
print(lines)
# → ['aaaa\n', 'bbbb\n', 'cccc']

すべての行がリストとして返り、各要素が1行に対応します。最終行以外には改行コード \n が含まれている点に注意しましょう⚠️

📤 ファイルに書き込む方法

✍️ write():文字列を書き込む

with open("test2.txt", "w") as f:
    f.write("aaaa\nbbbb\ncccc")

モードを "w" にして write() メソッドを呼ぶだけ。改行は \n を文字列に含めることで表現します。test2.txt が存在しなければ自動で新規作成されます🆕

➕ 追記モードで書き足す

with open("test2.txt", "a") as f:
    f.write("\ndddd\neeee")

モードを "a" にすると、既存ファイルの末尾に追記されます。ログファイルへの書き出しなどでよく使うパターンです。

📋 writelines():リストをまとめて書き込む

fruits = ["apple", "orange", "banana"]
with open("test3.txt", "w") as f:
    f.writelines(fruits)

注意点として、writelines()各要素の間に自動で改行を入れてくれません。上のコードを実行すると appleorangebanana と1行で繋がって書き込まれます😅

🔗 join()と組み合わせて要素ごとに改行

fruits = ["apple", "orange", "banana"]
with open("test3.txt", "w") as f:
    f.write("\n".join(fruits))

文字列の join() メソッドを使うと、リストの各要素を指定した文字(ここでは改行)で結合できます。実用的にはこの書き方の方が圧倒的に便利なので、セットで覚えておきましょう💡

📚 Pythonファイル操作・実務スキルを伸ばすおすすめ書籍

ファイル操作はPythonでの実務作業の基礎中の基礎。体系的に学べる本が手元にあると、応用範囲が一気に広がります✨

📖 Python基礎を辞書のように引ける定番書

オライリージャパン
¥4,620(2026/05/15 07:36時点)

ファイル操作はもちろん、CSV・JSON・データベースなど周辺機能まで網羅。「ちょっと困ったとき」に頼れる一生モノの1冊です。

🐍 Pythonの“良い書き方”が学べるベストプラクティス集

with文の正しい使い方や、リソース管理のベストプラクティスなど、現場で評価される書き方が90項目に凝縮されています。

📊 ファイル操作の応用:データ分析へつなげる1冊

テキスト・CSV・Excelなど多様なファイル形式を扱う実践的な技術が学べます。データ分析やレポート自動化に興味がある方に最適です。

⌨️ 学習継続を支える周辺アイテム

長時間のコーディングでも疲れにくいキーボードは、写経学習の継続力をしっかり支えてくれます。

コードと出力ファイルを並べて確認できるデュアルディスプレイ環境は、ファイル操作の学習効率を一気に底上げしてくれます🖥️

❓ よくある質問(FAQ)

🤔 Q1. "w" モードで開いたら大事なファイルが消えました…

A. "w" モードは既存ファイルの中身を消して上書きする仕様です。追記したいときは必ず "a" モードを使いましょう。重要なファイルを扱う前には、必ずバックアップを取る習慣もつけることをおすすめします🛡️

🤔 Q2. 日本語が文字化けしてしまいます

A. open()encoding 引数に "utf-8" を指定するのが基本です。open("test.txt", "r", encoding="utf-8") のように書くと、日本語を含むファイルも正しく読み書きできます。Windowsでは特に明示することをおすすめします。

🤔 Q3. read()readline()readlines() のどれを使うべき?

A. ファイルサイズと処理目的で使い分けます。小〜中サイズで丸ごと処理するなら read()巨大ファイルを1行ずつ処理するなら for line in f:readline()各行をリストで扱いたいなら readlines() が定番です。

🤔 Q4. with文を使わずに close() を呼んでもいい?

A. 可能ですが、例外が発生したときに close() が呼ばれないリスクがあります。with文を使えば例外時も自動で閉じられるので、現代のPythonではwith文を使うのが推奨です。

🤔 Q5. CSVやJSONもこの方法で読める?

A. 読めますが、専用モジュール(csvjson)を使う方が圧倒的に便利です。CSVは区切り文字の処理、JSONはネストした構造の解析を自動でやってくれるので、データを正しく扱うなら専用モジュールを使いましょう。

🎯 まとめ:ファイル操作はPython実務の入り口

open() でファイルオブジェクトを作り、with 文で安全に開閉し、read系・write系のメソッドで読み書きする——この基本パターンさえ押さえれば、Pythonでのファイル操作は怖くありません🎉

テキストファイルを自在に扱えるようになると、ログの記録、設定の読み込み、レポート出力、テンプレートからの自動生成など、実務で役立つツールを自分で組み立てられるようになります。明日からあなたのPythonコードはぐっと「使えるツール」へ進化していくはずです🚀

まずは手元のエディターで、簡単なテキストファイルを作って読み書きするところから試してみてください。小さな成功体験の積み重ねが、確実なスキルへとつながります✨

あざらし

はじめまして、あざらしです。 フリーターからエンジニア会社へ就職し、 現在はフリーランスのシステムエンジニアとして働いています。 本業のエンジニア業のかたわら、 ✍️ ブログ運営 と「収入の柱を増やす挑戦」を少しずつ続けています。 フリーター時代から比べると、 段階的に収入が増えていくのを実感できるのが素直にうれしい今日この頃。 このブログでは、日々の気づき・体験談 IT・ガジェット・ゲーム系の話 「調べて分かったこと」を噛み砕いた解説 などを中心に、ジャンルに縛られない雑記ブログとして発信しています。 「自分と同じように悩んでいる人のヒントになればいいな」 そんな気持ちで更新中です。 👉 プロフィール詳細は、名前「あざらし」をクリックしてください