この記事では、Pythonでのファイル操作において、ファイルモード(読み取り、書き込み、追加)の指定方法について詳しく解説します。具体的なコード例とその詳細、さらには応用例まで、一つ一つ手を取って説明していきます。
目次
基本のファイルモードとは
Pythonでファイルを操作する際、用途に応じていくつかのモードがあります。主に以下の3つのモードがよく用いられます。
1. 読み取り(`’r’`)モード
2. 書き込み(`’w’`)モード
3. 追加(`’a’`)モード
読み取り(’r’)モード
読み取りモードでは、ファイルの内容を読み込むことができます。ただし、新しい内容を書き込むことはできません。
# 読み取りモードでファイルを開く
with open('example.txt', 'r') as f:
content = f.read()
print(content)
書き込み(’w’)モード
書き込みモードでは、新しい内容をファイルに書き込むことができます。既存の内容は全て削除されます。
# 書き込みモードでファイルを開く
with open('example.txt', 'w') as f:
f.write('新しい内容')
追加(’a’)モード
追加モードでは、既存の内容の後ろに新しい内容を追加することができます。
# 追加モードでファイルを開く
with open('example.txt', 'a') as f:
f.write('さらなる内容')
応用例
応用例1: ファイルに行番号を追加する
# 行番号を追加する
with open('example.txt', 'r') as f:
lines = f.readlines()
with open('example_with_line_numbers.txt', 'w') as f:
for i, line in enumerate(lines):
f.write(f"{i+1}: {line}")
応用例2: CSVファイルのデータを操作する
import csv
# CSVファイルの読み込み
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
# CSVファイルへの書き込み
with open('new_data.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Name', 'Age'])
writer.writerow(['Alice', 30])
writer.writerow(['Bob', 40])
応用例3: 複数のファイルをまとめて読み込む
import os
# 複数のテキストファイルを一つにまとめる
file_names = ['file1.txt', 'file2.txt', 'file3.txt']
with open('merged_file.txt', 'w') as f_out:
for file_name in file_names:
with open(file_name, 'r') as f_in:
content = f_in.read()
f_out.write(content)
f_out.write('\n')
まとめ
Pythonでのファイル操作は多様であり、読み取り、書き込み、追加など、様々なモードで柔軟に対応することが可能です。応用例を通じて、さらなる活用の幅も見てきました。これを機に、Pythonでのファイル操作に自信を持ち、より高度な処理を行ってみてはいかがでしょうか。
コメント