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

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

本文详解如何使用 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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。