python3爬虫初探(六)之EXCEL
在爬取数据之后,数据的保存就成为一个新的问题,一般不太大的的数据存储到EXCEL就可以了。这里介绍一个python的第三方库——xlsxwriter.
这个库的安装就不介绍了,pip就可以,不用FQ。这里仅介绍一些简单常用的命令。
首先,说明一下,xlsxwriter只能写入数据,不能读取和修改数据(读取和修改可以用xlrd和xlwt)。上代码。
import xlsxwriterworkbook = xlsxwriter.Workbook("xlsx_test.xlsx") # 创建一个名为 xlsx_test.xlsx 的工作薄 worksheet1 = workbook.add_worksheet("ID") # 新增一个工作表,可传入表名,不传默认为sheet1 worksheet2 = workbook.add_worksheet("姓名") # 重复命令可新增多张数据表# 设置列的参数,20,10代表字符数 worksheet1.set_column("A:A", 20) worksheet1.set_column('B:B', 10)# 插入数据,传入三个参数 worksheet1.write(0, 0, "hello world!") # 三个参数分别为:行,列,数据。注意行列索引值从零开始。# 最后要关闭工作薄,完成数据的保存 workbook.close()
xlrd和xlwt操作Excel文件学习
一、xlrd和xlwt的安装
xlrd和xlwt是python的第三方库,所以是需要自己安装的,可以在python的官网https://pypi.python.org/pypi下载该模块来安装,也可以通过其他手段,比如easy_install或者pip,我在Win7环境下已经安装好pip,所以就在命令符窗口中用如下命令来安装xlrd和xlwt。
pip install xlrd
pip install xlwt
运行过程如下:
二、xlrd使用介绍
1、导入模块
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook('excelFile.xls')
3、使用技巧
获取一个工作表
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u'Sheet1')#通过名称获取
获取整行和整列的值(数组)
table.row_values(i)
table.col_values(i)
获取行数和列数
nrows = table.nrows
ncols = table.ncols
循环行列表数据
for i in range(nrows):
print table.row_values(i)
单元格
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value
使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
简单的写入
row = 0
col = 0
# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 value = '单元格的值'
xf = 0 # 扩展的格式化
table.put_cell(row, col, ctype, value, xf)
table.cell(0,0) #单元格的值'
table.cell(0,0).value #单元格的值'
- # _*_ coding:utf-8 _*_
- #----------------------------------------------------------------------------
- # import modules
- #----------------------------------------------------------------------------
- import os
- import xlrd
- from datetime import date,datetime
- #打开Excel文件
- workbook = xlrd.open_workbook('09-10.11-38-12-HTTP-GOOD-1-Lte1sDataStat_Charts.xlsx')
- #输出Excel文件中所有sheet的名字
- print workbook.sheet_names()
- #根据sheet索引或者名称获取sheet内容
- Data_sheet = workbook.sheets()[0]
- CdfData_sheet = workbook.sheet_by_index(1)
- Charts_sheet = workbook.sheet_by_name(u'Charts')
- #获取sheet名称、行数和列数
- print Data_sheet.name, Data_sheet.nrows, Data_sheet.ncols,\
- CdfData_sheet.name, CdfData_sheet.nrows, CdfData_sheet.ncols,\
- Charts_sheet.name, Charts_sheet.nrows, Charts_sheet.ncols
- #获取整行和整列的值(列表)
- rows = Data_sheet.row_values(0) #获取第一行内容
- cols = Data_sheet.col_values(1) #获取第二列内容
- #print rows
- #print cols
- #获取单元格内容
- cell_A1 = Data_sheet.cell(0,0).value
- cell_C1 = Data_sheet.cell(0,2).value
- cell_B1 = Data_sheet.row(0)[1].value
- cell_D2 = Data_sheet.col(3)[1].value
- print cell_A1, cell_B1, cell_C1, cell_D2
- #获取单元格内容的数据类型
- #ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
- print 'cell(0,0)数据类型:', Data_sheet.cell(0,0).ctype
- print 'cell(1,0)数据类型:', Data_sheet.cell(1,0).ctype
- print 'cell(1,1)数据类型:', Data_sheet.cell(1,1).ctype
- print 'cell(1,2)数据类型:', Data_sheet.cell(1,2).ctype
- #获取单元格内容为日期的数据
- date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)
- print date_value
- print '%d:%d:%d' %(date_value[3:])
- d = {'11:25:59':[1, 2, 3], '11:26:00':[2, 3, 4], '11:26:01':[3, 4, 5]}
- print d['11:25:59']
- print d['11:26:00']
- print d['11:26:01']
- print d['11:25:59'][0]
- print d['11:26:00'][0]
- print d['11:26:01'][0]
三、xlwt使用介绍
Xlwt简介:
功能:用于生成97/2000/XP/2003xls文件。
Python版本:Python2.3 to 2.7
当前版本:0.7.5
平台:跨平台
相关模块:
csv python标准模块。推荐。
xlrd 读取 .xls, .xlsx 文件。
xlutils xlrd和xlwt的集合。
openpyxl 读写 Excel 2007 xlsx/xlsm文件 。纯python,效率不高。
Matplotlib 2D作图模块,适用于基于excel作图。
Pywin32 python windows扩展 ,不跨平台,通过COM口连接excel。
Pyxll 在excel中使用python替代vbs。http://www.pyxll.com/。类似模块有pyinex。Python For Excel http://www.opentradingsystem.com/PythonForExcel/main.html
XlsxWriter 写xlsx文件。纯python。
快速入门
下面例子,创建一个名为mini.xls的文件,它有一个空sheet:'xlwt was here'。代码见mini.py。
fromxlwt import *
w =Workbook()
ws = w.add_sheet('xlwtwas here')
w.save('mini.xls')
Workbook类初始化时有encoding和style_compression参数。
encoding,设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:
# -*- coding: utf-8-*-
style_compression 表示是否压缩,不常用。
Workbook 还有一些属性:
Owner 设置文档所有者。
country_code: 国家码
wnd_protect: 窗口保护
obj_protect: 对象保护
Protect: 保护
backup_on_save: 保存时备份
Hpos: 横坐标
Vpos: 纵坐标
Width: 宽度
Height: 高度
active_sheet: 活动sheet
tab_width: tab宽度
wnd_visible: 窗口是否可见
wnd_mini: 窗口最小化
hscroll_visible: 横向滚动条是否可见。
vscroll_visible: 纵向滚动条是否可见。
tabs_visible: tab是否可见。
dates_1904: 是否使用1904日期系统
use_cell_values: 单元格的值
default_style: 默认样式
colour_RGB: 颜色
方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。
用例如下:
- # _*_ coding:utf-8 _*_
- #----------------------------------------------------------------------------
- # import modules
- #----------------------------------------------------------------------------
- import os
- import xlwt
- def set_style(name, height, bold = False):
- style = xlwt.XFStyle() #初始化样式
- font = xlwt.Font() #为样式创建字体
- font.name = name
- font.bold = bold
- font.color_index = 4
- font.height = height
- style.font = font
- return style
- def write_excel():
- #创建工作簿
- workbook = xlwt.Workbook(encoding='utf-8')
- #创建sheet
- data_sheet = workbook.add_sheet('demo')
- row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID']
- row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202]
- #生成第一行和第二行
- for i in range(len(row0)):
- data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
- data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))
- #保存文件
- workbook.save('demo.xls')
- if __name__ == '__main__':
- write_excel()
- print u'创建demo.xlsx文件成功'
参考资料:
下载地址:https://pypi.python.org/pypi/xlwt/0.7.5
官方网址:http://www.python-excel.org/
介绍胶片:http://www.simplistix.co.uk/presentations/python-excel.pdf
python3爬虫初探(六)之EXCEL相关推荐
- python3爬虫初探(二)之requests
关于请求网页,不得不提requests这个库,这是爬虫经常用到的一个第三方库,用pip安装即可. requests用法很多,这里只写一些基础的,其他高级功能可参考官方文档. import reques ...
- python3爬虫初探(一)之urllib.request
#----第一把武器-----urllib.request--------- urllib.request是python3自带的库(python3.x版本特有),我们用它来请求网页,并获取网页源码.话 ...
- python3爬虫初探(八)requests
几个常见的操作: import requests #from PIL import Image #from io import BytesIO def simple_get(url): res ...
- python3爬虫初探(七)使用MySQL
MySQL是Web世界中使用最广泛的数据库服务器.SQLite的特点是轻量级.可嵌入,但不能承受高并发访问,适合桌面和移动应用.而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也 ...
- python3爬虫初探(五)之从爬取到保存
想一想,还是写个完整的代码,总结一下前面学的吧. import requests import re# 获取网页源码 url = 'http://www.ivsky.com/tupian/xiaohu ...
- python3爬虫初探(四)之文件保存
接着上面的写,抓取到网址之后,我们要把图片保存到本地,这里有几种方法都是可以的. #-----urllib.request.urlretrieve----- import urllib.request ...
- python3爬虫初探(三)之正则表达式
前面已经写了如何获取网页源码,那么接下来就是该解析网页并提取需要的数据了.这里简单写一下正则表达的用法. 首先,找个要抓取图片的网站,获取源码. import requests import re# ...
- Python3爬虫(六) 解析库的使用之Beautiful Soup
Infi-chu: http://www.cnblogs.com/Infi-chu/ Beautiful Soup 借助网页的结构和属性等特性来解析网页,这样就可以省去复杂的正则表达式的编写. Bea ...
- Python爬虫初探(九)——爬虫之Beautifulsoup4实战(爬取豆瓣信息)
前面两章咱们介绍了Beautifuisoup4模块的简单使用,今天就用它来爬取豆瓣信息.话不多说,咱们开始吧. 一.拿到url地址 二.获取豆瓣数据 三.保存文件 需求: 爬取标题.评分.详情页的地址 ...
最新文章
- 非抢占式优先算法例题_三维点云的经典算法与前沿技术有哪些?
- java gson 工具类_gson工具类将Java类转换为json的使用
- Winform中实现根据配置文件重新加载ZedGraph属性的实现思路
- Python报错:IndentationError: unindent does not match any outer indentation level解决办法
- 支持向量机的最大分类间隔(转)
- Android开发之通过Android Studio自带插件git创建分支,合并分支等
- mysql 不支持 select into
- 关于Config.ARGB_8888、Config.ALPHA_8、Config.ARGB_4444、Config.RGB_565的理解
- 互联网协会点名QQ音乐等14款 App 过度收集用户信息
- 【组合数学+动态规划】在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。...
- myeclipse 创建 maven项目的时候出现:invalid project description 解决方法
- 上海计算机等级考试一级题库软件,计算机等级考试一级题库
- 关于a标签下载文件变打开的解决方案
- adc0832工作原理详解_adc0834工作原理及AD转换
- Java JDK8新特性Lambda表达式
- Civil3D创建装配集合
- 研究生查分方式-查分时间大汇总-文都管联院
- SQL Server基础操作(此随笔仅作为本人学习进度记录三)
- 14寸笔记本 2k linux,HUAWEI 华为 MateBook 14 Linux版 14英寸笔记本电脑(i7-8565U、8G、512G、MX250、2K、100%sRGB)...
- CentOs7下载与安装
热门文章
- Mysql数据库(五)——mysql事务及引擎
- 福建师范大学计算机考研好考吗,福建师范大学考研难吗?一般要什么水平才可以进入?...
- 手机1像素线粗_小米1亿像素手机配置全曝光:史上最炫酷呼吸灯!
- task文件服务器无法输入,Win10系统无法启动task scheduler服务的解决方法
- 计算机专业PS模版,计算机专业PS范例十一
- tensorflow gpu利用率低_「动手学习Tensorflow」- Tensorflow综述I
- python的类程序的结构_Python程序员学习路径之数据结构篇
- python统计字典里面value出现的次数_python统计字典中元素出现的次数
- ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库
- php 文件保存函数,PHP文件函数