Pythonでファイルモードを指定して読み書きする方法

この記事では、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でのファイル操作に自信を持ち、より高度な処理を行ってみてはいかがでしょうか。

コメント

コメントする

目次