📜  pythone csv - Python (1)

📅  最后修改于: 2023-12-03 14:46:20.343000             🧑  作者: Mango

Python CSV 模块介绍

CSV(Comma-Separated Values)即逗号分隔值,是一种常见的用于存储和传输表格数据的文件格式。

Python 中的 CSV 模块

Python 提供了内置的 CSV 模块用于处理 CSV 文件。它允许我们读取、写入和修改 CSV 文件。

CSV 文件的读取

读取 CSV 文件的过程是将 CSV 文件的每一行转换为一个列表,如果 CSV 文件的第一行是列名,那么它将作为字典的键值。我们可以使用 CSV 模块的 reader() 方法来读取 CSV 文件。

以下代码演示了如何读取 CSV 文件:

import csv

with open('example.csv') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1
        else:
            print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
            line_count += 1
    print(f'Processed {line_count} lines.')

输出:

Column names are name, department, birthday
    John Smith works in the Accounting department, and was born in November
    Erica Meyers works in the IT department, and was born in March
Processed 3 lines.
CSV 文件的写入

我们可以使用 CSV 模块的 writer() 方法来将数据写入 CSV 文件。也可以读取 CSV 文件,修改数据后再将其写入。

以下代码演示了如何将数据写入 CSV 文件:

import csv

with open('new_file.csv', mode='w') as csv_file:
    fieldnames = ['name', 'department', 'birthday']
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'name': 'John Smith', 'department': 'Accounting', 'birthday': 'November'})
    writer.writerow({'name': 'Erica Meyers', 'department': 'IT', 'birthday': 'March'})
CSV 文件的修改

我们可以使用 CSV 模块的 writerow() 方法来修改 CSV 文件中的数据。

以下代码演示了如何修改 CSV 文件中的数据:

import csv

with open('example.csv', 'r') as csv_file, open('updated.csv', 'w', newline='') as new_file:
    reader = csv.reader(csv_file)
    writer = csv.writer(new_file)
    for row in reader:
        if row[0] == 'Erica Meyers':
            writer.writerow(['Erica Meyers', 'IT', 'March'])
        else:
            writer.writerow(row)
限制和更改 CSV 模块的默认设置

CSV 模块提供了多个配置选项,如分隔符、行终止符、引号字符、空值的表示方式等。我们可以使用 csv.register_dialect() 方法来定义自己的 CSV 方言,或者修改已有的方言。

以下代码演示了如何更改 CSV 方言的默认设置:

import csv

csv.register_dialect('my_dialect', delimiter='|', lineterminator='\r\n')

with open('example.csv', 'r') as csv_file:
    reader = csv.reader(csv_file, dialect='my_dialect')
    for row in reader:
        print(row)

输出:

['name,department,birthday']
['John Smith,Accounting,November']
['Erica Meyers,IT,March']
结论

CSV 文件是一种非常常见的数据交换格式,Python 的 CSV 模块为我们处理 CSV 文件提供了非常方便的方法。我们可以使用 CSV 模块轻松地读取、写入和修改 CSV 文件,也可以根据需要更改 CSV 模块的默认设置。