参考文献:《Python数据分析基础》

前言

Excel文件和CSV文件

Excel文件与CSV文件的不同:首先Excel文件不是纯文本文件,所以不能在文本编辑器中打开它并查看数据。例如,在记事本中打开一个Excel文件。

Excel文件

python使用csv和EXCEL存储数据区别 python csv sheet_代码注释


在记事本中的格式

python使用csv和EXCEL存储数据区别 python csv sheet_CSV_02


其次,与CSV文件不同,Excel工作簿被设计成包含多个工作表,所以需要通过内省(内部检查)获取其中所有工作表的信息。

内省的意义

内省Excel文件有助于确定文件中的数据确实是你想要的,对数据的一致性和完整性做一个初步检查。换句话说,可以使你对数据处理工作的工作量和文件内容的一致性有个大致的概念。

创建Excel文件

打开Microsoft Excel,将工作簿保存为sales_2013,xlsx。

工作表1:january_2013

python使用csv和EXCEL存储数据区别 python csv sheet_python_03


工作表2:february_2013

python使用csv和EXCEL存储数据区别 python csv sheet_代码注释_04


工作表3:march_2013

python使用csv和EXCEL存储数据区别 python csv sheet_CSV_05

创建脚本

#!/usr/bin/env python3
import sys
from xlrd import open_workbook

input_file = sys.argv[1]

workbook = open_workbook(input_file)
print('Number of worksheets:', workbook.nsheets)
for worksheet in workbook.sheets():
	print("Worksheet name:", worksheet.name, "\tRows:", worksheet.nrows, "\tColumns:", worksheet.ncols)

脚本代码注释

xlrd模块相关函数

这里介绍一下本文用到的xlrd模块函数
open_workbook()—— 打开Excel文件并读取数据
sheets() —— 通过索引顺序获取一个工作表
nsheets —— 求工作表的总数
nrows —— 获取有效行数
ncols —— 获取列表的有效列数
name —— 求工作表名称

代码注释
from xlrd import open_workbook

这一行代码通过引用xlrd模块的open_workbook函数读取和分析Excel文件

workbook = open_workbook(input_file)

这一行代码使用open_workbook函数,读取一个Excel输入文件,并赋值给变量workbook。workbook中包含了Excel文件所有的信息,所以可以通过使用workbook来获取每个工作表的信息。

print('Number of worksheets:', workbook.nsheets)

这一行代码使用nsheets函数,求得Excel文件中所包含工作表的个数。随后将其输出到屏幕上。

for worksheet in workbook.sheets():
	print("Worksheet name:", worksheet.name, "\tRows:", worksheet.nrows, "\tColumns:", worksheet.ncols)

这两行代码,构建了for循环体。使用sheets函数,依次引用每一个工作表。最后使用对应的函数依次输出各工作表的名字、行数和列数。

运行脚本

在命令行输入以下命令,然后按回车键:

python使用csv和EXCEL存储数据区别 python csv sheet_python_06

查看结果

python使用csv和EXCEL存储数据区别 python csv sheet_python_07