【Python基礎10】ファイル操作の基本|ファイルの読み込みと書き込みを徹底解説

Pythonのファイル操作の基本

ファイル操作とは?

ファイル操作とは、プログラムからテキストファイルやCSVファイルなどにデータを保存したり、逆にファイルからデータを読み込んだりすることを指します。Pythonでは、組み込みの関数を使って簡単にファイル操作を行うことができます。

なぜファイル操作が重要なのか?

  • ユーザーが入力したデータを保存して再利用する
  • 外部のデータ(ファイル、設定情報)をプログラム内で活用する
  • プログラムの実行結果をログとして記録する

ファイルを開く基本構文(open関数の使い方)

open関数の基本構文

Pythonでは、open()関数を使ってファイルを開きます。
構文:

open(ファイル名, モード)
  • ファイル名: 読み込むファイルのパス
  • モード: ファイルを開くときのモード(読み込み、書き込みなど)
モード説明
r読み込みモード(デフォルト)
w書き込みモード(ファイルが存在する場合は上書き)
a追記モード(既存の内容に追加)
bバイナリモード

ファイルからデータを読み込む方法

基本的なファイルの読み込み

ファイルを開き、read()メソッドを使って内容を読み込む方法を示します。

例: ファイルのすべての内容を読み込む

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

1行ずつ読み込む方法(readline)

readline()メソッドを使うと、1行ずつデータを読み込むことができます。

例:

with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())  # 改行を除いて出力
        line = file.readline()

すべての行をリストとして取得する(readlines)

readlines()メソッドを使えば、すべての行をリスト形式で取得できます。

例:

with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

ファイルへのデータの書き込み方法

基本的なファイルの書き込み

wモードを使ってファイルにデータを書き込みます。ファイルがすでに存在する場合は、その内容が上書きされます。

例: ファイルに文字列を書き込む

with open("output.txt", "w") as file:
    file.write("こんにちは、Pythonのファイル操作!")

出力ファイル内容:

こんにちは、Pythonのファイル操作!

複数行のデータを書き込む

writelines()メソッドを使えば、複数行のデータを一度に書き込むことができます。

例:

lines = ["1行目のデータ\n", "2行目のデータ\n", "3行目のデータ\n"]

with open("output.txt", "w") as file:
    file.writelines(lines)

出力ファイル内容:

1行目のデータ  
2行目のデータ  
3行目のデータ

ファイルへの追記方法

追記モード(a)を使う

既存のファイルにデータを追加する場合は、aモードを使用します。既存の内容を保持したまま、新しいデータを末尾に追加します。

例:

with open("output.txt", "a") as file:
    file.write("4行目のデータ\n")

出力ファイル内容:

1行目のデータ  
2行目のデータ  
3行目のデータ  
4行目のデータ

バイナリファイルの読み書き

バイナリモードの基本

画像ファイルや音声ファイルなどのバイナリデータを扱う場合は、bモードを使用します。

例: バイナリファイルの読み込み

with open("image.jpg", "rb") as file:
    data = file.read()
    print(f"バイト数: {len(data)}")

例: バイナリファイルの書き込み

with open("copy_image.jpg", "wb") as file:
    file.write(data)

ファイル操作時の注意点

1. with文の使用(自動でファイルを閉じる)

ファイル操作には必ずwith文を使いましょう。これにより、処理が終わった後に自動でファイルが閉じられるため、リソースの無駄遣いやエラーを防ぐことができます。

悪い例(ファイルを手動で閉じる必要がある):

file = open("example.txt", "r")
content = file.read()
file.close()  # 明示的に閉じる必要がある

良い例(with文を使う):

with open("example.txt", "r") as file:
    content = file.read()

2. ファイルが存在しない場合の対策

ファイルが存在しないときにエラーが発生するのを防ぐために、例外処理(try-except)を使います。

例:

try:
    with open("non_existent.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("ファイルが見つかりません。")

CSVファイルの読み書き

CSVファイルの基本的な読み込み

CSVファイルは、カンマ区切りでデータが保存されているファイルです。Pythonの標準ライブラリであるcsvモジュールを使って読み書きができます。

例: CSVファイルの読み込み

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

CSVファイルへの書き込み

csv.writerを使ってデータを書き込みます。

例:

import csv

data = [
    ["名前", "年齢", "職業"],
    ["Taro", "25", "エンジニア"],
    ["Hanako", "30", "デザイナー"]
]

with open("output.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(data)

まとめと次のステップ

Pythonのファイル操作は、データを保存したり外部データを活用したりするために非常に重要です。open関数を使った基本的な読み書きから、CSVやバイナリデータの操作、例外処理まで理解することで、ファイル操作を応用したさまざまなプログラムが書けるようになります。次のステップとして、ログファイルを出力するプログラムや、データを保存して分析するプログラムに挑戦してみましょう!