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

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

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

Name,Email,Country

JohnQ.Smith,jqsmith@example.com,USA

PetrNovak,pnovak@example.com,CZ

BernardJones,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')

fromcsvimportDictReader

d=DictReader(f)

data=[]

forrowind:

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 函数正是我需要的。你可以给它一个常规的数字范围(例如整数),以及它们之间的步长值。然后,该函数会生成一个随机结果,这意味着我可以在数据的总行数范围内获得一个随机整数(或者说是行号)。

这个小程序运行良好:

fromcsvimportDictReader

fromrandomimportRandom

d=DictReader(open('mydata.csv'))

data=[]

forrowind:

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 或许是一种技巧!

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

python如何读取excel数据-使用Python读取电子表格中的数据相关推荐

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

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

  2. java读取sheet2_java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)

    java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本) 在http://download.csdn.net/detail/u010792467/8072015下载所需 ...

  3. php循环读取excel每个单元格,php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)...

    error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); include_once('Classes/PHPExcel/I ...

  4. java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解

    java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...

  5. SAP FPM通过ABAP读取EXCEL值到动态内表并把数据发送到其他组件

    文章目录 需求 一.效果 二.实现 1.部分代码 2.其中相关的内容可查看系列文章获悉 总结 需求 在网页应用中(FPM.FBI.WDA)通过ABAP读取EXCEL值到动态内表并把数据发送到其他组件 ...

  6. php 远程读取excel,PHP远程读取excel文件,如何读取?

    PHP远程读取excel文件,如何读取?PHP远程读取excel文件,怎么读取?? PHPExcel能远程读取excel文件吗?即读取其他服务器上的文件! 或者有没有其他好的方法能实现? 求方法... ...

  7. xlsx表格怎么做汇总统计_怎样在excel电子表格中对数据进行分类汇总,实例教程...

    怎样在 excel 电子表格中对数据进行分类汇 总 , 实例教程 篇一:怎样在 excel 中对数据进行分类汇总 怎样在 Excel 中对数据进行分类汇总 当需要在 Excel 中对数据进行分类计算时 ...

  8. 使用Properties集合存储数据,遍历取出Properties集合中的数据

    package com.learn.demo07.Prop;import java.io.FileOutputStream; import java.io.FileReader; import jav ...

  9. 取出json中的数据php,怎么从Json中取出数据放到一个新组中

    如何从Json中取出数据放到一个新组中 JSON数据如下: { "CommunityModel": [ { " UUID ": "xxxxxx-xxx ...

  10. ajax异步获取数据后动态向表格中添加数据的页面

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 [html] view plaincopyp ...

最新文章

  1. 自定义ProgressBar(自定义View和ClipDrawable)
  2. matlab中,怎样把矩阵中所有的0改为2
  3. 张新、黎民、王亮三位老师分别来自湖南、广西、甘肃,分别教语文、数学和英语。已知:(1)张新不是湖南人,黎明不是广西人;(2)湖南的老师不教英语;(3)广西的老师教语文;(4)黎民不教数学。由此可知,王
  4. VLAN基础配置及Access接口
  5. HTML5_02之视频、音频、Canvas
  6. ACL'21 | 弱标签的垃圾数据,也能变废为宝!
  7. 动态规划LeetCode70爬楼梯
  8. oracle连接中出现错误ORA-12541,ORA-12514,ORA-01017的解决方法
  9. 测试需求分析第一部分
  10. 环信即时通讯在工程中的安装——Nusen_Liu
  11. 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
  12. [练习]QQ登陆界面-测试用例的编写
  13. 2021最新关于点云配准的全面综述
  14. Ubuntu安装OpenGL
  15. 计算机速成课 第二集 电子计算机
  16. 威锋十年:叫一声「果粉」,你还敢答应吗?
  17. WPF游戏开发——小鸡快跑
  18. 新建的工程没有Products和Frameworks文件夹
  19. eclipse找不到java虚拟机_eclipse无法启动 - 没有找到java虚拟机
  20. office2016安装后右键新建没有word、excel、ppt等--解决方法总结

热门文章

  1. java笔试之简单密码
  2. 测试数据精准对比的思考
  3. iOS socket
  4. 连接sql sever2008数据库出现了无法连接到数据库引擎问题解决
  5. LNK2001连接错误
  6. Python—程序设计:抽象工厂模式
  7. Netty基础系列(1) --linux网路I/O模型
  8. 了解大数据在人力资源和薪资中的作用
  9. 20155325 2016-2017-2 《Java程序设计》第3周学习总结
  10. Python学习之旅 —— 基础篇(二)数据类型、运算、while循环