Python - CSV ファイルの書き込みと読み取り

1.csvファイルの紹介

CSV ファイルは一般的なデータ形式で、さまざまなフィールドがカンマで区切られ、各行がデータ レコードを表します。Python では、csv モジュールを使用して CSV ファイルの読み取りと書き込みを行うことができます。

2.CSVファイルの書き込み

Python では、csv モジュールの Writer オブジェクトを使用して CSV ファイルを書き込むことができます。以下に例を示します。

import csv

# 创建要写入的数据
data = [
    ['张三', 20, '男'],
    ['李四', 25, '女'],
    ['王五', 30, '男']
]

# 打开文件,指定写入模式
with open('data.csv', 'w', newline='') as file:
    # 创建csv写入对象
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '年龄', '性别'])
    # 写入数据
    writer.writerows(data)

上記の例では、最初に書き込むデータ (複数のリストを含むリスト) を作成しました。次に、open()関数を使用してファイルを開き、書き込みモードを指定します。newline=''余分な改行が使用されないことを示します。次に、 csv 書き込みオブジェクトを作成しwriterwriterow()メソッドを使用してヘッダーを書き込み、writerows()メソッドを使用してデータを書き込みます。最後に、withステートメントを使用してファイルを自動的に閉じます。

CSV ファイルに書き込む場合は、データを文字列形式に変換する必要があることに注意してください。書き込まれたデータにカンマやダブルクォートなどの特殊文字が含まれている場合は、処理が必要です。例えば:

import csv

# 创建要写入的数据
data = [
    ['张三', 20, '男'],
    ['李四', 25, '女'],
    ['王五', 30, '男'],
    ['"Tom, Jerry"', 35, '男']
]

# 打开文件,指定写入模式
with open('data.csv', 'w', newline='') as file:
    # 创建csv写入对象
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['姓名', '年龄', '性别'])
    # 写入数据
    for row in data:
        # 将包含特殊字符的数据进行处理
        row[0] = row[0].replace('"', '""')
        row[0] = f'"{row[0]}"'
        writer.writerow(row)

上の例では、カンマと二重引用符を含む特殊文字を含むデータを作成しました。このデータを書き込むには、二重引用符をエスケープし、データを二重引用符で囲む必要があります。具体的には、ダブルクォーテーションを2つのダブルクォーテーションに置き換えてから、データをダブルクォーテーションで囲むreplace()方法を使用します。f-string

3.CSVファイルを読み込む

Python では、csv モジュールのリーダー オブジェクトを使用して CSV ファイルを読み取ることができます。以下に例を示します。

import csv

# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file)
    # 遍历每一行数据
    for row in reader:
        print(row)

上記の例では、open()関数を使用してファイルを開き、読み取りモードを指定します。次に、csv 読み取りオブジェクトを作成しreaderforループを使用してデータの各行を走査し、print()関数を使用して出力します。

CSV ファイルを読み取る場合、データの各行がリストに解析されることに注意してください。CSV ファイルにヘッダーがある場合、データの最初の行がヘッダーであり、next()関数を使用してそれをスキップできます。

import csv

# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file)
    # 跳过表头
    next(reader)
    # 遍历每一行数据
    for row in reader:
        print(row)

上記の例では、next()関数を使用してテーブルのヘッダーをスキップしました。

また、CSV ファイルにカンマや二重引用符などの特殊文字が含まれている場合は、パラメータを使用してcsv.readerエスケープquotechar文字を指定する必要があります。例えば:

import csv

# 打开文件,指定读取模式
with open('data.csv', 'r') as file:
    # 创建csv读取对象
    reader = csv.reader(file, quotechar='"')
    # 遍历每一行数据
    for row in reader:
        print(row)

上の例では、quotechar='"'エスケープ文字として二重引用符を指定しています。こうすることで、二重引用符を含むデータを正しく解析できます。

おすすめ

転載: blog.csdn.net/qq_48892708/article/details/129768533