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
:不使用引号。
示例:使用delimiter
和quotechar
假设 CSV 文件内容如下,字段由分号分隔,并且某些字段被引号包围:
name;age;city
"Alice";30;"New York"
"Bob";25;"Los Angeles"
"Charlie";35;"Chicago"
可以使用delimiter
和quotechar
来正确解析:
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 函数的一般使用方法 | 欢迎分享( 公众号:老蒋朋友圈 )