首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3爬虫初探(六)之EXCEL

python3爬虫初探(六)之EXCEL

作者头像
py3study
发布2020-01-10 15:52:48
7520
发布2020-01-10 15:52:48
举报
文章被收录于专栏:python3python3

 在爬取数据之后,数据的保存就成为一个新的问题,一般不太大的的数据存储到EXCEL就可以了。这里介绍一个python的第三方库——xlsxwriter.

这个库的安装就不介绍了,pip就可以,不用FQ。这里仅介绍一些简单常用的命令。

 首先,说明一下,xlsxwriter只能写入数据,不能读取和修改数据(读取和修改可以用xlrd和xlwt)。上代码。

import xlsxwriter

workbook = 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 #单元格的值'

用例如下:

[python] view plain copy

  1. # _*_ coding:utf-8 _*_
  2. #----------------------------------------------------------------------------
  3. # import modules 
  4. #----------------------------------------------------------------------------
  5. import os  
  6. import xlrd  
  7. from datetime import date,datetime  
  8. #打开Excel文件
  9. workbook = xlrd.open_workbook('09-10.11-38-12-HTTP-GOOD-1-Lte1sDataStat_Charts.xlsx')  
  10. #输出Excel文件中所有sheet的名字
  11. print workbook.sheet_names()  
  12. #根据sheet索引或者名称获取sheet内容
  13. Data_sheet    = workbook.sheets()[0]  
  14. CdfData_sheet = workbook.sheet_by_index(1)  
  15. Charts_sheet  = workbook.sheet_by_name(u'Charts')  
  16. #获取sheet名称、行数和列数
  17. print Data_sheet.name,    Data_sheet.nrows,    Data_sheet.ncols,\  
  18.       CdfData_sheet.name, CdfData_sheet.nrows, CdfData_sheet.ncols,\  
  19.       Charts_sheet.name,  Charts_sheet.nrows,  Charts_sheet.ncols  
  20. #获取整行和整列的值(列表)    
  21. rows = Data_sheet.row_values(0) #获取第一行内容
  22. cols = Data_sheet.col_values(1) #获取第二列内容
  23. #print rows
  24. #print cols
  25. #获取单元格内容
  26. cell_A1 = Data_sheet.cell(0,0).value  
  27. cell_C1 = Data_sheet.cell(0,2).value  
  28. cell_B1 = Data_sheet.row(0)[1].value  
  29. cell_D2 = Data_sheet.col(3)[1].value  
  30. print cell_A1, cell_B1, cell_C1, cell_D2  
  31. #获取单元格内容的数据类型
  32. #ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
  33. print 'cell(0,0)数据类型:', Data_sheet.cell(0,0).ctype  
  34. print 'cell(1,0)数据类型:', Data_sheet.cell(1,0).ctype  
  35. print 'cell(1,1)数据类型:', Data_sheet.cell(1,1).ctype  
  36. print 'cell(1,2)数据类型:', Data_sheet.cell(1,2).ctype  
  37. #获取单元格内容为日期的数据
  38. date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)  
  39. print date_value  
  40. print '%d:%d:%d' %(date_value[3:])  
  41. d = {'11:25:59':[1, 2, 3], '11:26:00':[2, 3, 4], '11:26:01':[3, 4, 5]}  
  42. print d['11:25:59']  
  43. print d['11:26:00']  
  44. print d['11:26:01']  
  45. print d['11:25:59'][0]  
  46. print d['11:26:00'][0]  
  47. 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。

用例如下

[python] view plain copy

  1. # _*_ coding:utf-8 _*_
  2. #----------------------------------------------------------------------------
  3. # import modules 
  4. #----------------------------------------------------------------------------
  5. import os  
  6. import xlwt           
  7. def set_style(name, height, bold = False):  
  8.     style = xlwt.XFStyle()   #初始化样式
  9.     font = xlwt.Font()       #为样式创建字体
  10.     font.name = name  
  11.     font.bold = bold  
  12.     font.color_index = 4
  13.     font.height = height  
  14.     style.font = font  
  15. return style  
  16. def write_excel():  
  17. #创建工作簿
  18.     workbook = xlwt.Workbook(encoding='utf-8')    
  19. #创建sheet
  20.     data_sheet = workbook.add_sheet('demo')    
  21.     row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID']  
  22.     row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202]  
  23. #生成第一行和第二行
  24. for i in range(len(row0)):  
  25.         data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))  
  26.         data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))  
  27. #保存文件
  28.     workbook.save('demo.xls')     
  29. if __name__ == '__main__':   
  30.     write_excel()  
  31. 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • xlrd和xlwt操作Excel文件学习
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档