python 表格存取方法(转)
xlwt/xlrd库 存Excel文件:(如果存储数据中有字符,那么写法还有点小小的变化)
- import xlwt
- workbook = xlwt.Workbook(encoding='utf-8')
- booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
- #存第一行cell(1,1)和cell(1,2)
- booksheet.write(0,0,34)
- booksheet.write(0,1,38)
- #存第二行cell(2,1)和cell(2,2)
- booksheet.write(1,0,36)
- booksheet.write(1,1,39)
- #存一行数据
- rowdata = [43,56]
- for i in range(len(rowdata)):
- booksheet.write(2,i,rowdata[i])
- workbook.save('test_xlwt.xls')
读Excel文件:(同样是对于数值类型数据)
- import xlrd
- workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')
- print(workbook.sheet_names()) #查看所有sheet
- booksheet = workbook.sheet_by_index(0) #用索引取第一个sheet
- booksheet = workbook.sheet_by_name('Sheet 1') #或用名称取sheet
- #读单元格数据
- cell_11 = booksheet.cell_value(0,0)
- cell_21 = booksheet.cell_value(1,0)
- #读一行数据
- row_3 = booksheet.row_values(2)
- print(cell_11, cell_21, row_3)
- >>>34.0 36.0 [43.0, 56.0]
openpyxl 库 存Excel文件:
- from openpyxl import Workbook
- workbook = Workbook()
- booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
- #存第一行单元格cell(1,1)
- booksheet.cell(1,1).value = 6 #这个方法索引从1开始
- booksheet.cell("B1").value = 7
- #存一行数据
- booksheet.append([11,87])
- workbook.save("test_openpyxl.xlsx")
读Excel文件:
- from openpyxl import load_workbook
- workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx')
- #booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
- sheets = workbook.get_sheet_names() #从名称获取sheet
- booksheet = workbook.get_sheet_by_name(sheets[0])
- rows = booksheet.rows
- columns = booksheet.columns
- #迭代所有的行
- for row in rows:
- line = [col.value for col in row]
- #通过坐标读取值
- cell_11 = booksheet.cell('A1').value
- cell_11 = booksheet.cell(row=1, column=1).value
原理上其实都一样,就写法上有些差别。
其实如果对存储格式没有要求的话,我觉得存成 csv文件 也挺好的:
- import pandas as pd
- csv_mat = np.empty((0,2),float)
- csv_mat = np.append(csv_mat, [[43,55]], axis=0)
- csv_mat = np.append(csv_mat, [[65,67]], axis=0)
- csv_pd = pd.DataFrame(csv_mat)
- csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False)
因为它读起来非常简单:
- import pandas as pd
- filename = "D:\\Py_exercise\\test_pd.csv"
- csv_data = pd.read_csv(filename, header=None)
- csv_data = np.array(csv_data, dtype=float)
python 表格存取方法(转)的更多相关文章
- python表格导出--xlwt的使用
xlwt可以用来导出excel表,下面介绍一下它的用法: 1. 安装xlwt模块 pip install xlwt 2. 使用xlwt模块:后端接口编写 import xlwt #导出表格接口 def ...
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Python SQLAlchemy --1
本文為 Python SQLAlchemy ORM 一系列教學文: SQLAlchemy 大概是目前 Python 最完整的資料庫操作的套件了,不過最令人垢病的是它的文件真的很難閱讀,如果不搭配個實例 ...
- (GoRails)ActiveRecord --explain方法:(优化你的查询)
https://gorails.com/episodes/activerecord-explain?autoplay=1 比如没有加index的查询和加了index的查询,调用数据库的速度就差5倍. ...
- Typora学习
Markdown学习总结 标题的使用格式 # 一阶标题 或者 ctrl + 1 ## 二阶标题 或者 ctrl + 2 ### 三阶标题 或者 ctrl + 3 #### 四阶标题 或者 ctrl + ...
- Typora简介
Typora是什么 Typora是一款支持实时预览的Markdown文本编辑器,拥有macOS.Windows.Linux三个平台的版本,并且完全免费. 下载地址:https://www.typora ...
- Python处理Excel表格
同事小王今天说他有一个Excel表格,表格如下,一列是姓名,一列是电话号码,总共有大概2000行数据. 有的姓名占了一行,有的占了两行,还有一些占了三行的.如下图: 他问我可不可以全部统一成一行,而且 ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- python 使用openpyxl来写数据到excel表格
使用openpyxl写execl确实很方便.我先介绍用到的相关模块与函数 Workbook:工作簿模块,在内存创建一个工作簿. ExcelWriter:使用它向exel中写数据. get_column ...
随机推荐
- JavaScript 闭包的详细分享(三种创建方式)(附小实例)
JavaScript闭包的详细理解 一.原理:闭包函数--指有权访问私有函数里面的变量和对象还有方法等:通俗的讲就是突破私有函数的作用域,让函数外面能够使用函数里面的变量及方法. 1.第一种创建方式 ...
- COGS 146. [USACO Jan08] 贝茜的晨练计划
★☆ 输入文件:cowrun.in 输出文件:cowrun.out 简单对比时间限制:1 s 内存限制:32 MB 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运 ...
- 电路设计软件 电路模拟软件 sPlan , LTspice 等
电路设计/PCB绘制 立创EDA https://lceda.cn/ sPlan http://www.electronic-software-shop.com/splan-70.html?langu ...
- 使用ABAP代码创建S/4HANA里的Sales Order
下图是使用ABAP代码创建的S/4HANA的Sales Order的截图: 其中红色区域的值是我代码里硬编码的,而蓝色是函数SD_SALESDOCUMENT_CREATE自己创建的. 来看下代码: D ...
- POJ-2029 Get Many Persimmon Trees---二维树状数组+枚举
题目链接: https://vjudge.net/problem/POJ-2029 题目大意: 有N棵树在一个n*m的田里,给出每颗树的坐标 用一个s*t的矩形去围,最多能围几棵树 思路: 用二维树状 ...
- caffe RandomHue和RandomSaturation
https://www.cnblogs.com/wangyblzu/p/5710715.html HSV和RGB一样是一种图像的颜色模型,h表示色调,s表示饱和度 1.RandomHue void R ...
- python剑指offer数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- git fetch和push的区别
获取fetch的用法 git-fetch用于从另一个reposoitory下载objects和refs. 命令格式为:git fetch … 其中表示远端的仓库路径.git remote add or ...
- CentOS 7与 Windows双系统丢失Windows启动项及默认启动项修改
1.Windows启动项消失的原因: 在安装Win7.8/10系统+CentOS7双系统后,默认会将mbr(Main Boot Record)改写为grub2,默认的CentOS7无法识别Wind ...
- C++二维数组动态申请内存
好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...