使用 Python 读取电子表格中的数据实例详解

江岸
江岸
发布时间:2026-10-11 | 2人浏览过
原创

本文详解如何使用 Python 的 csv 模块读取 CSV 格式的电子表格数据。通过 DictReader 将数据行转换为有序字典,实现按字段名访问。同时结合 random 模块的 randrange 函数,演示如何从数据列表中随机抽取记录,适用于抽奖或样本选取场景。

Python 处理 CSV 数据的基础

Python 作为自由开源的编程语言,在 Fedora 等系统中通常已预装。它非常适合处理逗号分隔值(CSV)数据。CSV 文件按行存储数据,数值间以逗号分隔,且每行包含相同的字段定义。Excel、Numbers、Google Sheet 等工具均可导出为 CSV 格式,PayPal 等服务也支持此导出方式。

使用 DictReader 读取数据

Python 内置的 csv 模块提供了 DictReader 方法,可将数据行作为有序字典(OrderedDict)处理。该方法需要传入文件对象以访问 CSV 数据。

假设示例文件名为 example.csv 且位于当前目录,其内容如下:

Name,Email,Country
John Q. Smith,jqsmith@example.com,USA
Petr Novak,pnovak@example.com,CZ
Bernard Jones,bjones@example.com,UK

读取并处理数据的代码如下:

f = open('example.csv', 'r')
from csv import DictReader
d = DictReader(f)
data = []
for row in d:
  data.append(row)

执行后,data 对象是一个包含 OrderedDict 的列表:

[OrderedDict([('Name', 'John Q. Smith'),
        ('Email', 'jqsmith@example.com'),
        ('Country', 'USA')]),
 OrderedDict([('Name', 'Petr Novak'),
        ('Email', 'pnovak@example.com'),
        ('Country', 'CZ')]),
 OrderedDict([('Name', 'Bernard Jones'),
        ('Email', 'bjones@example.com'),
        ('Country', 'UK')])]

可通过索引引用 data 对象中的元素,例如:

>>> print(data[0]['Country'])
USA
>>> print(data[2]['Email'])
bjones@example.com

处理无标题行的 CSV

若 CSV 文件没有标题行,需定义 fieldnames 参数,并传递一系列名称:

d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])

结合 random 模块进行随机抽取

Python 的 random 模块包含 Random 类,其 randrange 函数接受数字范围和步长值,生成范围内的随机整数。结合 DictReader,可实现从数据中随机选取记录:

from csv import DictReader
from random import Random
d = DictReader(open('mydata.csv'))
data = []
for row in d:
  data.append(row)
r = Random()
winner = data[r.randrange(0, len(data), 1)]
print('The winner is:', winner['Name'])
print('Email address:', winner['Email'])

以上代码演示了如何从 mydata.csv 中随机抽取一条记录并打印其姓名和邮箱。

总结

通过 csv.DictReader 和 random.randrange,可以高效地读取电子表格数据并进行随机处理。以上就是使用 Python 读取电子表格中的数据实例详解的详细内容,更多关于 Python 数据处理、CSV 操作及 random 模块的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表