@zhangyu756897669
2017-10-02T15:14:47.000000Z
字数 2171
阅读 743
python官方文档
在上节中,你学习了如何从PDF和Word文档中提取文本。这些文件采用二进制格式,需要特殊的Python模块来访问其数据。另一方面,CSV和JSON文件只是纯文本文件。您可以在文本编辑器中查看它们,例如IDLE的文件编辑器。但Python还附带了特殊的csv和json模块,每个模块都提供了帮助您处理这些文件格式的功能。
CSV代表“逗号分隔值”,CSV文件是作为纯文本文件存储的简化电子表格。 Python的csv模块可以方便地解析CSV文件
JSON是一种将信息作为JavaScript源代码存储在纯文本文件中的格式。
(JSON是JavaScript对象表示法的缩写。)您不需要知道JavaScript编程语言来使用JSON文件,但JSON格式是有用的,因为它被用于许多Web应用程序。
CSV文件中的每行代表电子表格中的一行,并以逗号分隔行中的单元格。例如,http://nostarch.com/automatestuff/中的电子表格example.xlsx在CSV文件中将如下所示:
我将使用这个文件为本章的示例。您可以从http://nostarch.com/automatestuff/下载example.csv或将文本输入文本编辑器,并将其另存为example.csv。
CSV文件很简单,缺少Excel电子表格的许多功能。例如,CSV文件:
CSV文件的优点是简单。 CSV文件被许多类型的程序广泛支持,可以在文本编辑器(包括IDLE的文件编辑器)中查看,并且是一种直观的方式来表示电子表格数据。 CSV格式文件只是一个逗号分隔值的文本文件。
由于CSV文件只是文本文件,您可能会尝试以字符串形式读取它们,然后使用第8章中学习的技术处理该字符串。例如,由于CSV文件中的每个单元格都以逗号分隔,也许您可以在每行文本上调用split()方法来获取值。但不是CSV文件中的每个逗号都代表两个单元格之间的边界。 CSV文件也有自己的一组转义字符,以允许包含逗号和其他字符作为值的一部分。 split()方法不处理这些转义字符。由于这些潜在的缺陷,您应该始终使用csv模块来读取和写入CSV文件。
要使用csv模块从CSV文件读取数据,您需要创建一个Reader对象。 Reader对象允许您在CSV文件中对行进行迭代,,在当前工作目录中使用example.csv:
import csv #❶
exampleFile = open('example.csv') #❷
exampleReader = csv.reader(exampleFile) #❸
exampleData = list(exampleReader) #❹
exampleData #❹
[['4/5/2014 13:34', 'Apples', '73'],
['4/5/2014 3:41', 'Cherries', '85'],
['4/6/2014 12:46', 'Pears', '14'],
['4/8/2014 8:59', 'Oranges', '52'],
['4/10/2014 2:07', 'Apples', '152'],
['4/10/2014 18:10', 'Bananas', '23'],
['4/10/2014 2:40', 'Strawberries', '98']]
csv模块带有Python,所以我们可以导入它,而不必首先安装它。
要使用csv模块读取CSV文件,首先使用open()函数❷来打开它,就像其他任何文本文件一样。但是,对于open()返回的File对象而不是调用read()或readlines()方法,将其传递给csv.reader()函数❸。这将返回一个Reader对象供您使用。请注意,不要将文件名字符串直接传递给csv.reader()函数。
在Reader对象中访问值的最直接方法是将其转换为一个普通的Python列表,方法是将其传递给list()❹。在此Reader对象上使用list()返回列表列表,您可以将其存储在像dataData这样的变量中。在shell中输入exampleData显示列表的列表❺。
现在您将CSV文件列为列表列表,您可以使用表达式exampleData [row] [col]访问特定行和列的值,其中row是exampleData中的一个列表的索引,col是您要从该列表中的项目的索引。
exampleData[0][0]
'4/5/2014 13:34'
exampleData[0][1]
'Apples'
exampleData[0][2]
'73'
xampleData[1][1]
'Cherries'
exampleData[6][1]
'Strawberries'
exampleData [0] [0]进入第一个列表,并给我们第一个字符串exampleData [0] [2]进入第一个列表,并给我们第三个字符串,依此类推。
C语言
c#程序设计
计算机组成原理
网络原理
web设计
数据结构
数学
算法设计与分析
数据库原理
sql
.NET数据开发
数据压缩
计算机图形学
sql
linx
opjles
wulken
c++