テキストファイルの取り扱いは、Pythonの基本的かつ重要な操作の一部であり、ファイルの読み込み、書き込み、修正など、さまざまな操作が可能です。この記事では、Pythonを使用してテキストファイルを扱う方法について完全かつ包括的に解説します。ファイル操作の基本から応用的な使い方までを順を追って説明しますので、初心者から上級者まで役立つ内容となるでしょう。
1. ファイルの読み込み
Pythonでテキストファイルを読み込むには、open()
関数を使用します。この関数はファイルを開き、その後にファイルを操作するためのオブジェクトを返します。ファイルを開いたら、read()
や readline()
メソッドを使用してファイル内容を取得することができます。

ファイルの開き方
python# ファイルを読み込む
file = open('example.txt', 'r') # 'r' は読み込みモード
content = file.read() # ファイル全体を一度に読み込む
print(content) # ファイル内容を表示
file.close() # ファイルを閉じる
この例では、open()
で example.txt
というテキストファイルを開き、read()
メソッドでその内容を読み込み、最後に close()
メソッドでファイルを閉じています。
行ごとに読み込む
ファイルが大きくなると、全内容を一度に読み込むのは効率的ではありません。そのため、行ごとに読み込むことも可能です。
python# 行ごとに読み込む
file = open('example.txt', 'r')
for line in file:
print(line, end='') # 行ごとに内容を表示
file.close()
for
ループを使用することで、ファイルの各行を順番に処理することができます。
2. ファイルへの書き込み
ファイルにデータを書き込むには、open()
関数で書き込みモード ('w'
や 'a'
) を指定してファイルを開きます。モードには、ファイルの内容を上書きする 'w'
と、既存の内容に追加する 'a'
があります。
新規ファイルへの書き込み
python# 新規ファイルに書き込む
file = open('output.txt', 'w') # 書き込みモードでファイルを開く
file.write("Hello, Python!\n") # 文字列をファイルに書き込む
file.write("This is a test.\n")
file.close()
このコードでは、'w'
モードでファイルを開き、write()
メソッドで文字列をファイルに書き込んでいます。
ファイルに追記する
python# 既存のファイルに追記する
file = open('output.txt', 'a') # 追記モードでファイルを開く
file.write("This is appended text.\n") # 追記する内容
file.close()
'a'
モードで開くことで、既存のファイルに新しい内容を追加することができます。
3. ファイルの読み込みと書き込みの同時操作
Pythonでは、ファイルを読み書き両方の操作を同時に行うことができます。これには、'r+'
モードを使用します。
python# 読み書きモードでファイルを開く
file = open('example.txt', 'r+')
content = file.read() # ファイル内容を読み込む
file.write("This is new text.") # ファイルに書き込む
file.close()
この方法では、ファイルを開いた後、最初にファイルを読み込み、その後書き込むことができます。
4. with 文を使ったファイル操作
Pythonでは、with
文を使用することで、ファイルを開いた後に自動的に閉じることができます。これにより、close()
メソッドを手動で呼び出す必要がなくなります。
python# with 文を使ってファイルを開く
with open('example.txt', 'r') as file:
content = file.read() # ファイルを読み込む
print(content) # 内容を表示
# ファイルは自動的に閉じられる
with
文を使用することで、コードが簡潔になり、ファイルを確実に閉じることができます。
5. バイナリファイルの操作
テキストファイルだけでなく、Pythonではバイナリファイルを扱うことも可能です。バイナリファイルの場合、'rb'
や 'wb'
といったモードを使います。
バイナリファイルの読み込み
python# バイナリファイルを読み込む
with open('example.jpg', 'rb') as file:
data = file.read() # バイナリデータを読み込む
print(data) # バイナリデータを表示
バイナリファイルへの書き込み
python# バイナリデータを書き込む
with open('output.jpg', 'wb') as file:
file.write(data) # 読み込んだバイナリデータを書き込む
6. ファイルの存在確認とエラーハンドリング
ファイルが存在しない場合にエラーが発生するのを防ぐために、os
モジュールを使ってファイルの存在を確認したり、try
–except
文を使ってエラーハンドリングを行ったりできます。
ファイルの存在確認
pythonimport os
# ファイルが存在するか確認
if os.path.exists('example.txt'):
print("ファイルは存在します。")
else:
print("ファイルは存在しません。")
エラーハンドリングを使う
pythontry:
with open('example.txt', 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
print("指定されたファイルは見つかりません。")
7. ファイル操作の実例
実際のアプリケーションでの使用例として、ログファイルの処理を挙げます。ログファイルを読み込み、新しいログエントリを追加するという操作です。
pythonimport datetime
# ログファイルに新しいエントリを追加
with open('log.txt', 'a') as log_file:
current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
log_file.write(f"{current_time} - 新しいログエントリ\n")
このコードは、現在の日時をログファイルに追記する簡単な例です。
まとめ
Pythonを使ったテキストファイルの操作は非常に強力で柔軟です。ファイルの読み込み、書き込み、エラーハンドリング、バイナリファイルの取り扱いなど、さまざまな操作が可能であり、with
文を使うことでコードが簡潔かつ安全になります。これらの操作を組み合わせることで、より複雑なファイル操作にも対応できるようになります。