Python 是最流行、功能最强大的编程语言之一。由于它是自由开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数据。CSV文件一开始往往是以表格或电子表格的形式出现。本文介绍了如何在 Python 3 中处理 CSV 数据。

CSV 数据正如其名。CSV 文件按行放置数据,数值之间用逗号分隔。每行由相同的字段定义。简短的 CSV 文件通常易于阅读和理解。但是较长的数据文件或具有更多字段的数据文件可能很难用肉眼解析,因此在这种情况下计算机做得更好。

这是一个简单的示例,其中的字段是 Name、Email 和 Country。在此例中,CSV 数据将字段定义作为第一行,尽管并非总是如此。

Name,Email,Country

John Q. Smith,jqsmith@example.com,USA

Petr Novak,pnovak@example.com,CZ

Bernard Jones,bjones@example.com,UK

从电子表格读取 CSV

Python 包含了一个 csv 模块,它可读取和写入 CSV 数据。大多数电子表格应用,无论是原生(例如 Excel 或 Numbers)还是基于 Web 的(例如 Google Sheet),都可以导出 CSV 数据。实际上,许多其他可发布表格报告的服务也可以导出为 CSV(例如,PayPal)。

Python csv 模块有一个名为 DictReader 的内置读取器方法,它可以将每个数据行作为有序字典 (OrderedDict) 处理。它需要一个文件对象访问 CSV 数据。因此,如果上面的文件在当前目录中为 example.csv,那么以下代码段是获取此数据的一种方法:

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')])]

引用这些对象很容易:

>>> print(data[0]['Country'])

USA

>>> print(data[2]['Email'])

bjones@example.com

顺便说一句,如果你需要处理没有字段名标题行的 CSV 文件,那么 DictReader 类可以让你定义它们。在上面的示例中,添加 fieldnames 参数并传递一系列名称:

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

真实例子

我最近想从一长串人员名单中随机选择一个中奖者。我从电子表格中提取的 CSV 数据是一个简单的名字和邮件地址列表。

幸运的是,Python 有一个有用的 random 模块,可以很好地生成随机值。该模块 Random 类中的 randrange 函数正是我需要的。你可以给它一个常规的数字范围(例如整数),以及它们之间的步长值。然后,该函数会生成一个随机结果,这意味着我可以在数据的总行数范围内获得一个随机整数(或者说是行号)。

这个小程序运行良好:

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'])

显然,这个例子非常简单。电子表格本身包含了复杂的分析数据的方法。但是,如果你想在电子表格应用之外做某事,Python 或许是一种技巧!

成长离不开与优秀的伙伴共同学习,如果你需要好的学习环境,好的学习资源,项目教程,零基础学习,这里欢迎每一位热爱Python的小伙伴,点击:Python学习圈

python获取表格中的所有数据_【经验分享】用Python读取电子表格中的数据相关推荐

  1. python获取表单数据的代码_使用flask和python从html表单获取表单数据

    我正在尝试在按下submit时从文本字段中获取表单数据,以便将其放入json格式并作为另一个页面访问json数据,该页面将是localhost:5000/info.每次我试图用request.form ...

  2. java监听路由器数据_求如何用java读取路由器上的数据,介绍点资料

    展开全部 import java.io.*; import java.util.*; public class GetRoutInfo { public static void main(String ...

  3. python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...

    Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...

  4. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...

    [单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...

  5. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

    [单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...

  6. PP实施经验分享(5)——SAP中MD04显示常用函数(读取SAP MRP运行数据)

    PP实施经验分享(5)--SAP中MD04显示常用函数(读取SAP MRP运行数据) SAP实施过程中,经常会遇到用户对于现有MD04标准功能展示有一定的抱怨,不符合我们查看的习惯,经常会提出相关报表 ...

  7. 招商银行吴颖:招行大数据应用经验分享

    招商银行吴颖:招行大数据应用经验分享 2015-02-27  haosunzhe  文章来源  阅 1753  转 18 转藏到我的图书馆 微信分享: 该文为招商银行信息技术部数据仓库开发团队负责人吴 ...

  8. PP实施经验分享(9)——SAP中Day’s supplyReceipt day’s supply及相关报表(可当物料短缺报表使用)

    PP实施经验分享(9)--SAP中Day's supply&Receipt day's supply及相关报表(可当物料短缺报表使用) 项目实施过程中会经常碰到计划物流部对于采购物料短缺情况提 ...

  9. PP实施经验分享(13)——SAP中BOM查询技巧CS11/CS12/CS13/CS14/CS15/CSMB

    PP实施经验分享(6)--SAP中BOM查询技巧CS11/CS12/CS13/CS14/CS15/CSMB 项目中经常会遇到查询BOM信息,这里简单介绍几个SAP标准查询BOM的功能,也可以通过这些有 ...

  10. python获取节假日_用python获取表格中的节假日起始日期

    开发中遇到关于日期(节假日)的问题.具体情况:业务每天都会在系统中下载10张表,下载规则是今天下昨天的数据,意思就是下载时的查询条件日期那一栏应该写昨天的日期,但是有一个小问题,遇到周末就不能下昨天的 ...

最新文章

  1. 编译是检查C语言什么的错误,c语言编译过程
  2. 蓝桥杯日期计算java_日期类的使用(java)-蓝桥杯
  3. 设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线的和,例如以下魔方,各行各列及两对角线值的和都是64.
  4. 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处
  5. Java Web(1)高并发业务
  6. jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现
  7. python统计excel数据总行数_python 统计excel行数据库
  8. Mac 10.11下成功安装Wex5及文件扩展属性问题
  9. 电子沙盘 数字沙盘 开发教程
  10. R语言空间插值/R语言离散数据网格化/R语言空间点插值/R语言nc日均转月均、日期转换
  11. 怎样一次删除许多WPS word中的文本框(及其内容)?简单方法
  12. 汽车4G车载TBOX智能终端
  13. 解决安卓机拍照,照片显示自动旋转90度问题
  14. html5 邮箱后缀自动填写,Ant Design Vue AutoComplete 通过自定义选项search实现如自动补充邮箱后缀功能...
  15. 麒麟操作系统新硬盘创建 LVM 硬盘管理
  16. java阳历转为阴历错了一天_Java 阴历阳历转换
  17. 《Adobe Premiere Pro视频编辑指南(第2版)》——水银回放引擎
  18. html5 history微信浏览器返回不刷新
  19. 使用Excel计算财务NPV和内部收益率IRR
  20. 数据显示ETH燃烧的有多猛

热门文章

  1. 做一名「技术掮客」去变现自己的技术
  2. json几种不同解析方式
  3. melogin.cn主页登录_melogin.cn登陆界面
  4. Hotpot - 让使用CKettle像吃火锅一样爽
  5. 机器学习笔记-阻尼牛顿法
  6. 计算机管理无法格式化硬盘,sd无法格式化怎么解决_电脑无法格式化sd卡怎么办-win7之家...
  7. STM32L476入坑-1
  8. 英语四级和计算机二级考试时间安排,计算机二级考试时间一年几次呢
  9. C++的简单FTP客户端实现(二)编程
  10. 淋雨量matlab,最小淋雨量问题