最近在写项目,刚好要运用到excel表格的一些读写,顺便总结一下我以前学过的几个关于表格的操作。在写项目中,经常会见到页面中数据导出到表格中,同时,也会有经常在表格中填写测试用例,然后获取数据来做自动化测试的情况,那就我目前会的几种做一个总结吧~

篇幅较长,满满的干货~

1、csv文件读写

csv文件是我最开始接触的表格文件的读写文本类型,但是严格意义上来说csv文件就是一个纯文本文件,只不过支持通过表格打开,而且csv文件中的标点符号一定要是英文的格式。

1、读取csv文件中内容【可以自己手动创建一个csv文件,逗号分隔】

import csvimport codecs# 创建一个csv文件,并填入内容def load_csv():with open('a.csv','a') as file:f=csv.reader(file)print(list(f)) # 直接打印f,是一个object对象file.close()  # 关闭文件

2、写入到csv文件中

def load_csv():header = {'title', 'content'} # 表头数据data1 = ['test1', 'test2'] # 单行数据data2 = [['test1', 'one'], ['test2', 'two']] # list数据with open('b.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerow(header)writer.writerow(data1) # 写入单行writer.writerows(data2) # 写入多行

3、读取文件DictReader方法【读取结果为字典类型】

# 打印出来的数据是字典类型,表格的表头为键、每一行的值为值,值有几行就打印几个字典def read_csv():with open('b.csv', 'r') as file:f = csv.DictReader(file)for i in f:print(i['title'], i['content'])

4、

写入文件DictWriter方法【写入内容为字典类型】

def load_csv():datas = {'title': '1', 'content': '测试test1'}f = codecs.open('b.csv', 'w', 'gbk')writer = csv.DictWriter(f, fieldnames=['title', 'content'])writer.writeheader()writer.writerow(datas) # 写入一行writer.writerows(datas) # 写入多行

2、openpyxl对Excel文件读写

还记得以前写过的3分钟爬取微博热搜么?我们就结合这个来做文件的读写。

常用知识点:

# 创建一个excel表格wb = openpyxl.Workbook()# 给表格添加sheet名称wb.create_sheet(index=0, title='test1')# 保存表格wb.save('test_openpyxl.xlsx')

1、读取微博爬取的内容写到表格

# 获取微博热搜内容def get_text():list_n = ['排行']list_r = ['热搜名']url = 'https://s.weibo.com/top/summary'header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}response = requests.get(url=url, headers=header)if response.status_code == 200: #判断接口请求是否正确html = etree.HTML(requests.get(url, headers=header).text) # 构造XPath解析对象hot_search_name = html.xpath('//td[@class="td-02"]/a/text()') # 热搜名 字符串列表hot_search_rank = html.xpath('//td[@class="td-01 ranktop"]/text()') # 热搜排行hot_search_name_true = hot_search_name[1:] # 只取热搜排行,不取置顶热搜for i in range(0, 10):s = hot_search_rank[i] # 排行和热搜组合r = hot_search_name_true[i]list_n.append(s)list_r.append(r)else:print('wrong')return zip(list_n, list_r)# 将微博文件内容到表格def get_website_to_excel():result = get_text() # 微博内容结果wb = openpyxl.Workbook()sheet = wb.active #获取初始的sheetcount = 1for inner in result:sheet.cell(row=count, column=1).value = inner[0]sheet.cell(row=count, column=2).value = inner[1]count += 1wb.save('微博.xlsx') # 保存到当前目录下

2、读取表格内容

def get_excel_content():# 打开工作簿lw = openpyxl.load_workbook('test_openpyxl.xlsx')# 选取表单sheet_name = lw.active# 获取第一行第一列的数据 A1#  ce = sheet_name.cell(row=1, column=1)# print(ce.value)# 按行读取数据 去表头print(list(sheet_name.rows)[1:])for cases in list(sheet_name.rows)[1:]:rank = cases[0].valuename = cases[1].valueprint(rank, name)

3、xlrd 和 xlwt

1、读取Excel中的数据

import xlrdimport xlwtdef get_excel():# 获取数据data = xlrd.open_workbook('微博.xlsx')# 获取sheet# table = data.sheet_by_name('test') # 通过sheet名称获取数据table = data.sheet_by_index(0) # 通过sheet索引获取数据# 获取总行数rows = table.nrows# 获取总列数cols = table.ncols# 获取某个单元格的数据cell_value = table.cell(0, 1).valueprint(cell_value)# 获取excel表格所有数据for i in range(rows):for j in range(cols):print(table.cell(i, j).value)

2、写入内容到Excel表格中

def write_excel():data = [['title', 'content'], ['test1', 'test2']]# 创建excelwb = xlwt.Workbook()# 创建excel中的sheetws = wb.add_sheet('test')for i in range(len(data)):for j in range(len(data[i])):ws.write(i, j, data[i][j])# ws.write(0, 0, 'hahah')wb.save('test.xls')

总结要点:

1、读写文件的时候,记得要把文件关掉

2、输入中文时,乱码的话,可以导入codes包,然后设置中文格式为gbk,可以看到不少乱码了。

3、writerow和writerows的区别:writerow写入一行数据,writerows写入多行数据,而且写入多行数据的类型DictWriter字典类型,writer是list类型【有不对的欢迎指出来】

4、xlrd:对xls、xlsx、xlsm文件进行读操作–读操作效率较高

5、xlwt:对xls文件进行写操作–写操作效率较高,但是不能执行xlsx文件

6、openpyxl:对xlsx、xlsm文件进行读、写操作–xlsx写操作推荐使用,不能写xls文件

每天进步一点点,加油!!!

pythonexcel操作总结_python中常见关于Excel表格读写操作相关推荐

  1. Python对excel表格读写操作

    1.测试代码如下: # -*- coding-8 -*- from openpyxl import *def data_wr(r,c,data):print(ws.cell(row=r, column ...

  2. Java对Excel表格的操作

    Java对Excel表格的操作 目前软件开发多采用B/S架构.正B/S架构可以给软件的开发部署带来很大的便利,但是与此同时这种架构也带来了一些问题,例如Web报表的处理等,在B/S架构下,客户端的开发 ...

  3. python写表格_使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  4. excel调用python编程-使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  5. 使用Easyexcel对Excel进行读写操作

    1.概述 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址:GitHub - alibaba/easy ...

  6. VS2017,MFC对WPS下Excel表格的操作

    VS2017,MFC对WPS下Excel表格的操作 1.添加Excel类库 1.在菜单栏的"项目"->"添加新项目"->MFC下的Type Liab ...

  7. python对excel进行读写操作

    python对excel进行读写操作 欢迎使用Markdown编辑器 一.安装库 1.安装xlrd模块 2.安装xlwt模块 2.安装openpyxl模块 补充(多个python版本) 二.使用介绍 ...

  8. 利用python对Excel进行读写操作

    最近在写论文做实验的过程中,利用python自带的matplotlib库进行绘画,但是尝尝会出现在程序跑完后发现图片里面有一些小细节没有注意到,导致整个代码重新跑.代码重新跑短则几小时,长则就不好说了 ...

  9. VC实现对Excel表格的操作

    转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html 通过VC实现对Excel表格的操作的方法有多种, ...

最新文章

  1. TensorFlow损失函数
  2. 十二年来最强购房潮:报价 6 次,疯狂加价,华人程序员在硅谷买房太难了!...
  3. php将配置信息写入文件,Php写入配置文件的经典漏洞
  4. [网络安全自学篇] 四十四.Windows远程桌面服务缺陷(CVE-2019-0708)复现及防御详解
  5. CMake 入门与进阶
  6. MySQL数据库阶段学习目录
  7. kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
  8. android开发那些事儿(一)
  9. android studio: 让项目通过阿里云 maven jcenter 下载依赖资源
  10. python MySQL操作(增删改查)
  11. 数据结构选择练习题(有解析)
  12. Depmap分析、可视化CCLE数据
  13. 《最新开源 随插即用》SAM 自增强注意力深度解读与实践(附代码及分析)
  14. matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab
  15. matlab仿真igbt,逆变器用IGBT吸收电路的Matlab仿真研究
  16. iphone4s拒接电话
  17. 打印机服务器的系统,打印机服务器主机系统
  18. 玩转开发板--Linux系统移植至开发板fl2440实践过程
  19. Python开发者的画笔-turtle
  20. Jinja2+django+uwsgi+nginx

热门文章

  1. PPT打开显示找不到 ppcore.dll,无法打开 PPT
  2. 新买电脑C盘太大?只有一个C盘?如何分解C盘?电脑分盘,保姆级教学
  3. Sqlite3并发读写注意事项
  4. 爬虫篇——采集单机游戏(网页游戏),爬取小游戏
  5. 51单片机8*8点阵,按键控制数字加拼音上下左右移动
  6. 软件质量模型介绍ISO/IEC 9126和ISO/IEC 25010
  7. MyBatis 同时执行多条语句【简单扼要】
  8. 微信html 全屏显示,关于微信上网页图片点击全屏放大效果
  9. 【技巧】vs2019调试
  10. 美团每日红包 青龙面板