Pythonでファイルの内容を行ごとにリストとして取得する`readlines()`メソッドについて、基本的な使い方から実践的な例まで詳しく解説します。
readlines()メソッドの基本
`readlines()`は、ファイルの全行を読み込んでリストとして返すメソッドです。各行は文字列として、改行文字(`\n`)付きでリストの要素となります。
with open('sample.txt', 'r') as file:
lines = file.readlines()基本的な使用例
# sample.txtの内容:
# Hello
# World
# Python
with open('sample.txt', 'r') as file:
lines = file.readlines()
print(lines)
# 出力: ['Hello\n', 'World\n', 'Python\n']改行文字を削除する方法
リストの各要素から改行文字を削除するには、`strip()`メソッドを使用します。
with open('sample.txt', 'r') as file:
lines = [line.strip() for line in file.readlines()]
print(lines)
# 出力: ['Hello', 'World', 'Python']メモリ効率を考慮した使用方法
大きなファイルを扱う場合、`readlines()`は全行をメモリに読み込むため非効率的になる可能性があります。その場合は、以下のような方法を推奨します。
# より効率的な方法
with open('sample.txt', 'r') as file:
lines = [line.strip() for line in file]エラー対処法
FileNotFoundError
ファイルが存在しない場合に発生する一般的なエラーです。
try:
with open('non_existent.txt', 'r') as file:
lines = file.readlines()
except FileNotFoundError:
print("ファイルが見つかりません")UnicodeDecodeError
文字エンコーディングの問題による場合は、適切なエンコーディングを指定します。
with open('sample.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()実践的な使用例
CSVファイルの読み込み
with open('data.csv', 'r') as file:
lines = file.readlines()
header = lines[0].strip().split(',')
data = [line.strip().split(',') for line in lines[1:]]特定の行を処理
with open('sample.txt', 'r') as file:
lines = file.readlines()
# 偶数行のみ抽出
even_lines = [line.strip() for i, line in enumerate(lines) if i % 2 == 0]まとめ
`readlines()`メソッドは、ファイルの内容を簡単にリスト化できる便利な機能です。ただし、大きなファイルを扱う場合はメモリ使用量に注意が必要です。状況に応じて、適切な使用方法を選択することが重要です。
エラーが発生した場合は、ファイルの存在確認やエンコーディングの指定など、適切なエラーハンドリングを実装することで、安定したファイル処理を実現できます。