Python CSV Reader

Python CSV Reader

Python CSV Reader

在Python编程中,CSV(Comma Separated Values)是一种常见的格式,用于存储和交换数据。CSV文件可以使用逗号、分号等字符分隔不同的字段。对于处理CSV文件,Python提供了一个内置库csv,可以方便地读取和写入CSV文件。本文将介绍如何使用Python的csv库进行CSV文件的读取操作。

读取CSV文件

首先,我们需要准备一个CSV文件来进行演示。假设我们有一个名为data.csv的文件,内容如下:

Name,Age,City,Email
Alice,25,New York,alice@geek-docs.com
Bob,30,San Francisco,bob@geek-docs.com
Charlie,22,Chicago,charlie@geek-docs.com

接下来,我们将使用Python的csv库来读取这个CSV文件。下面是一个简单的示例代码:

import csv

with open('data.csv', 'r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)

运行以上代码,可以看到输出如下:

['Name', 'Age', 'City', 'Email']
['Alice', '25', 'New York', 'alice@geek-docs.com']
['Bob', '30', 'San Francisco', 'bob@geek-docs.com']
['Charlie', '22', 'Chicago', 'charlie@geek-docs.com']

通过csv.reader()函数读取CSV文件后,可以逐行获取CSV文件中的数据,每一行都被解析为一个包含字段的列表。

指定分隔符和引用符

在实际应用中,CSV文件中的字段可能不是用逗号分隔,而是使用分号或其他字符分隔。此时,我们可以通过指定delimiter参数来指定分隔符。另外,CSV文件中的字段可能会使用引用符(如双引号)将包含特殊字符的字段括起来。我们可以通过指定quotechar参数来指定引用符。下面是一个示例代码:

import csv

with open('data.csv', 'r') as file:
    csv_reader = csv.reader(file, delimiter=';')
    for row in csv_reader:
        print(row)

如果我们将CSV文件中的字段使用引用符括起来,例如:

"Name","Age","City","Email"
"Alice","25","New York","alice@geek-docs.com"
"Bob","30","San Francisco","bob@geek-docs.com"
"Charlie","22","Chicago","charlie@geek-docs.com"

那么我们可以使用以下示例代码:

import csv

with open('data.csv', 'r') as file:
    csv_reader = csv.reader(file, quotechar='"')
    for row in csv_reader:
        print(row)

使用DictReader读取CSV文件

除了使用csv.reader()函数逐行读取CSV文件外,我们还可以使用csv.DictReader()函数读取CSV文件,并将每一行的数据转换为一个字典。下面是一个示例代码:

import csv

with open('data.csv', 'r') as file:
    csv_reader = csv.DictReader(file)
    for row in csv_reader:
        print(row)

运行以上代码,可以看到输出如下:

OrderedDict([('Name', 'Alice'), ('Age', '25'), ('City', 'New York'), ('Email', 'alice@geek-docs.com')])
OrderedDict([('Name', 'Bob'), ('Age', '30'), ('City', 'San Francisco'), ('Email', 'bob@geek-docs.com')])
OrderedDict([('Name', 'Charlie'), ('Age', '22'), ('City', 'Chicago'), ('Email', 'charlie@geek-docs.com')])

通过csv.DictReader()函数读取CSV文件后,每一行的数据被转换为一个OrderedDict对象,键为CSV文件中的列名,值为每行对应的字段值。

使用csv.writer写入CSV文件

除了读取CSV文件外,Python的csv库还可以用于写入CSV文件。我们可以使用csv.writer()函数来创建一个csv.writer对象,并通过writerow()方法将一行数据写入CSV文件。下面是一个示例代码:

import csv

data = [
    ['Name', 'Age', 'City', 'Email'],
    ['David', '28', 'Los Angeles', 'david@geek-docs.com'],
    ['Eve', '35', 'Houston', 'eve@geek-docs.com'],
    ['Frank', '19', 'Seattle', 'frank@geek-docs.com']
]

with open('new_data.csv', 'w', newline='') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(data)

运行以上代码后,会在当前目录下生成一个名为new_data.csv的文件,并将data中的数据写入CSV文件中。

指定分隔符和引用符写入CSV文件

在写入CSV文件时,我们也可以通过指定delimiter参数和quotechar参数来指定分隔符和引用符。示例代码如下:

import csv

data = [
    ['Name', 'Age', 'City', 'Email'],
    ['Grace', '31', 'Miami', 'grace@geek-docs.com'],
    ['Henry', '26', 'Boston', 'henry@geek-docs.com'],
    ['Ivy', '23', 'Denver', 'ivy@geek-docs.com']
]

with open('new_data.csv', 'w', newline='') as file:
    csv_writer = csv.writer(file, delimiter=';', quotechar='"')
    csv_writer.writerows(data)

运行以上代码后,会生成一个使用分号和引用符作为分隔符的CSV文件。

总结

通过使用Python的csv库,我们可以方便地读取和写入CSV文件。无论是使用csv.reader()函数逐行读取文件,还是使用csv.DictReader()函数将数据转换为字典,亦或是使用csv.writer()函数将数据写入文件,都可以高效地进行CSV文件的处理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程