Python中的csv.reader 函数的一般使用方法

csv.reader ,这个我们常见的Python 内置的csv 模块中的一个函数,用于读取和解析 CSV(Comma-Separated Values)格式的文件。CSV 是一种常见的数据存储格式,数据以文本的形式存储,每行代表一个数据记录,字段通常由逗号(,)分隔。csv.reader 可以帮助你轻松地读取这些文件并处理其中的数据。

基本用途:

1、读取 CSV 文件:csv.reader 用来读取 CSV 文件并将每一行解析为一个列表(list)对象。每一行的字段(通常是由逗号分隔的值)将变成列表中的元素。

2、逐行读取数据:csv.reader 可以逐行读取 CSV 文件并返回一个迭代器,每次迭代返回一行数据。

常见用法

import csv

# 打开CSV文件

with open('example.csv', newline='') as csvfile:

reader = csv.reader(csvfile) # 创建 CSV 读取器

for row in reader: # 逐行读取

print(row) # 每行是一个包含字段的列表

假设example.csv 的内容如下:

name,age,city

Alice,30,New York

Bob,25,Los Angeles

Charlie,35,Chicago

输出将会是:

['name', 'age', 'city']

['Alice', '30', 'New York']

['Bob', '25', 'Los Angeles']

['Charlie', '35', 'Chicago']

参数和配置

csv.reader 接受多个参数,允许灵活地解析 CSV 文件:

csvfile:文件对象(通常由open() 函数返回的文件句柄)。

delimiter:指定分隔符,默认为逗号(,)。如果字段之间使用其他分隔符(例如制表符、分号等),可以设置这个参数。

quotechar:指定用于包裹字段的字符,默认是双引号(")。如果字段包含分隔符或换行符,可以使用引号将其包裹起来。

skipinitialspace:是否跳过字段分隔符后面的空格,默认为False。如果设置为True,分隔符后的空格会被忽略。

quoting:控制何时在 CSV 文件中使用引号,可以是以下几个值之一:

csv.QUOTE_MINIMAL:仅当字段包含分隔符、换行符或引号时才使用引号。

csv.QUOTE_ALL:对所有字段都使用引号。

csv.QUOTE_NONNUMERIC:对所有非数字字段使用引号。

csv.QUOTE_NONE:不使用引号。

示例:使用delimiterquotechar

假设 CSV 文件内容如下,字段由分号分隔,并且某些字段被引号包围:

name;age;city

"Alice";30;"New York"

"Bob";25;"Los Angeles"

"Charlie";35;"Chicago"

可以使用delimiterquotechar 来正确解析:

import csv

with open('example.csv', newline='') as csvfile:

reader = csv.reader(csvfile, delimiter=';', quotechar='"')

for row in reader:

print(row)

输出将会是:

['name', 'age', 'city']

['Alice', '30', 'New York']

['Bob', '25', 'Los Angeles']

['Charlie', '35', 'Chicago']

csv.reader 的常见用途

读取 CSV 数据:最直接的用途是读取并解析 CSV 文件,便于后续数据处理。例如,从文件中读取大量的表格数据并进行处理。

导入数据到 Python 程序:许多应用需要从外部 CSV 文件导入数据,csv.reader 提供了一种简洁的方式。

数据清洗和转换:读取 CSV 文件后,通常需要对数据进行清洗、过滤或转换。csv.reader 提供了一个方便的迭代接口,可以逐行处理文件中的数据。

处理带有引号的字段:CSV 文件中的字段可能包含逗号或换行符,这时字段通常被引号包围。csv.reader 会自动处理这些字段,避免手动解析引号和分隔符。

处理大型数据文件csv.reader 是一个迭代器,允许你逐行读取文件而不是一次性将文件加载到内存中,因此它可以有效地处理大型 CSV 文件。

结合csv.DictReader 使用

如果 CSV 文件有列标题,你可以使用csv.DictReader 代替csv.reader,它会将每一行数据转换为字典格式,字段名作为字典的键。这使得处理表格数据更加直观和方便。

import csv

with open('example.csv', newline='') as csvfile:

reader = csv.DictReader(csvfile) # 使用 DictReader 读取数据

for row in reader:

print(row) # 每行是一个字典,字段名是键

输出将是:

{'name': 'Alice', 'age': '30', 'city': 'New York'}

{'name': 'Bob', 'age': '25', 'city': 'Los Angeles'}

{'name': 'Charlie', 'age': '35', 'city': 'Chicago'}

投上你的一票

本文出处:老蒋部落 » Python中的csv.reader 函数的一般使用方法 | 欢迎分享( 公众号:老蒋朋友圈 )

公众号 「老蒋朋友圈」获取站长新知 / 加QQ群 【1012423279】获取商家优惠推送