Categories: python

Pythonでのファイル読み込み完全ガイド|初心者から中級者まで役立つ基本と応用

Pythonはシンプルかつ強力な文法で、さまざまな用途に使える人気の高いプログラミング言語です。その中でも「ファイルの読み込み」は、データ分析やログ処理、設定ファイルの取り扱いなど、幅広いシーンで必要になります。この記事では、Pythonでファイルを読み込むための基本的な方法から、文字コードの扱いやエラー処理のポイントまで、初心者にもわかりやすく丁寧に解説します。これからPythonでファイル操作を学びたい人、中級者としてさらに知識を深めたい人、どちらにも役立つ内容です。


open()関数の基本

Pythonでファイルを読み込むには、まず基本となるのがopen()関数です。この関数はファイルを開き、その内容にアクセスできるようにします。

file = open('sample.txt', 'r')
content = file.read()
file.close()
print(content)

この例では、sample.txtというファイルを読み取りモード('r')で開き、全内容をread()で取得しています。読み込みが終わったらclose()でファイルを閉じるのが基本です。


with構文を使った安全なファイル操作

open()を使う際、ファイルを閉じ忘れるとリソースリーク(メモリやファイルディスクリプタの無駄遣い)につながる可能性があります。これを防ぐには、with構文を使うのがベストプラクティスです。

with open('sample.txt', 'r') as file:
content = file.read()
print(content)

with構文を使えば、処理が終わった後に自動的にファイルが閉じられるため、安心して使用できます。


読み込みモードの種類

open()関数の第2引数には「モード(mode)」を指定します。主なモードには次のようなものがあります。

モード説明
'r'読み取り専用(ファイルが存在しないとエラー)
'w'書き込み専用(既存ファイルは上書き)
'a'追記(ファイルの末尾に追加)
'b'バイナリモード(例:'rb'でバイナリ読み込み)
'+'読み書き両用(例:'r+'

読み込みだけでなく、ファイルの書き込みや追記も含めて、目的に応じて適切なモードを選びましょう。


read()・readline()・readlines()の違い

ファイルの読み方には3つのメソッドがあります。それぞれの用途に応じて使い分けると効率的です。

read()

ファイル全体を一度に読み込みます。小さなファイル向き。

with open('sample.txt', 'r') as file:
content = file.read()
print(content)

readline()

1行ずつ読み込みます。大きなファイルを処理する際に便利です。

with open('sample.txt', 'r') as file:
line = file.readline()
while line:
print(line.strip())
line = file.readline()

readlines()

ファイル全体を行ごとのリストで取得します。

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

日本語ファイルを扱うときの注意点:エンコーディング

日本語ファイルを読み込むときに、「UnicodeDecodeError」が出ることがあります。これは文字コード(エンコーディング)が一致しないためです。日本語ファイルではutf-8またはshift_jisが使われていることが多いため、明示的に指定するのが安全です。

with open('japanese.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)

Windows環境ではencoding='cp932'(Shift_JISの別名)もよく使われます。


ファイルの存在確認とエラーハンドリング

ファイルを開く前に、その存在を確認しておくとより安全なコードになります。Pythonのos.pathモジュールやtry-except構文を使いましょう。

import os

filename = 'sample.txt'

if os.path.exists(filename):
with open(filename, 'r') as file:
print(file.read())
else:
print('ファイルが存在しません')

あるいは、例外処理で対応することもできます。

try:
with open('sample.txt', 'r') as file:
print(file.read())
except FileNotFoundError:
print('ファイルが見つかりませんでした')

応用:CSVファイルを読み込む

CSV形式のファイルを読み込むには、Python標準ライブラリのcsvモジュールが便利です。

import csv

with open('data.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)

タブ区切りなどの場合はdelimiter='\t'を指定すれば柔軟に対応できます。


応用:JSONファイルを読み込む

設定ファイルなどでは、JSON形式のデータが使われることもあります。Pythonのjsonモジュールを使えば、ファイルから辞書型(dict)として読み込めます。

import json

with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)
print(config)

ファイル読み込みでよくあるエラーと対処法

エラー内容原因対処法
FileNotFoundErrorファイルが存在しないパスの確認、try-exceptで補足
UnicodeDecodeErrorエンコーディングが不一致encoding=を指定
PermissionErrorアクセス権がないファイルの権限を確認
IsADirectoryErrorディレクトリを開こうとしたファイルパスを確認

エラーは予防も大切ですが、発生時にうまく処理することも重要です。


まとめ

Pythonでのファイル読み込みは、初歩的な操作の一つですが、さまざまな工夫や応用ができる奥深い分野でもあります。基本のopen()with構文の使い方をしっかり押さえたうえで、文字コードや例外処理、CSVやJSONといった形式の読み込みにもチャレンジしてみましょう。安全で効率的なファイル操作ができれば、あなたのPythonスキルは一段とアップするはずです。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。

Recent Posts