IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python:Tablib 一个用来处理表格数据的库 -> 正文阅读

[开发工具]python:Tablib 一个用来处理表格数据的库

Tablib 是一个 MIT 许可的格式不可知的表格数据集库,用 Python 编写。它允许您导入、导出和操作表格数据集。

快速入门

首先安装第三方包pip install tablib;pip3是因为电脑上安装了python2.7版本

lifeng@apple?~?%?pip3?install?tablib?
Collecting?tablib
??Using?cached?tablib-3.0.0-py3-none-any.whl?(47?kB)
Installing?collected?packages:?tablib
Successfully?installed?tablib-3.0.0

其次开始导入包,并创建对象,这个对象就是一个数据集,示例例如:

import?tablib


t?=?tablib.Dataset()

最后开始往里面添加数据,示例如下:

  • 添加行
import?tablib


t?=?tablib.Dataset()

names?=?["张三????50",?"李四????20"]
for?name?in?names:
????n,?s?=?name.split()
????t.append([n,?s])
  • 添加标题
t.headers?=?["姓名",?"分数"]
  • 添加列
t.append_col([23,?24],?"年龄")

合在一起运行并展示结果,示例如下:

import?tablib


t?=?tablib.Dataset()

names?=?["张三????50",?"李四????20"]
for?name?in?names:
????n,?s?=?name.split()
????t.append([n,?s])

t.headers?=?["姓名",?"分数"]
t.append_col([23,?24],?"年龄")
print(t.dict)


#?运行结果
[OrderedDict([('姓名',?'张三'),?('分数',?'50'),?('年龄',?23)]),?OrderedDict([('姓名',?'李四'),?('分数',?'20'),?('年龄',?24)])]

Process?finished?with?exit?code?0

从返回结果可以清晰看到,是OrderedDict类,它的作用就是按照元素初始添加顺序进行的…

导入数据

tablib.Dataset通过导入预先存在的文件来创建对象很简单。示例如下:

import?tablib


with?open("data_list.xlsx",?"rb")?as?r:
????data?=?tablib.Dataset().load(r)
????print(data)

#?运行结果
姓名|分数|年龄
--|--|--
张三|50|23
李四|20|24

Process?finished?with?exit?code?0

目前支持导入csv, tsv, dbf, xls, xlsx格式,这也是官网公布的,实操一下csv, tsv, dbf, xlsx是可行的。

导出数据

  • 导出csv格式数据
print(t.export("csv"))

#?运行结果
姓名,分数,年龄
张三,50,23
李四,20,24

Process?finished?with?exit?code?0
  • 导出json格式数据
print(t.export("json"))

#?运行结果
[{"姓名":?"张三",?"分数":?"50",?"年龄":?23},?{"姓名":?"李四",?"分数":?"20",?"年龄":?24}]

Process?finished?with?exit?code?0
  • 导出yaml格式数据
print(t.export("yaml"))

#?运行结果
-?{分数:?'50',?姓名:?张三,?年龄:?23}
-?{分数:?'20',?姓名:?李四,?年龄:?24}

Process?finished?with?exit?code?0

官方介绍还可以导出xls和pf格式,导入xls格式得安装依赖包xlwt和xlrd;导出pf格式得安装依赖包panads,如果不安装第三方包去直接使用的话就会抛出错误。

获取和删除

  • 索引获取、切片获取和键获取,示例如下:
#???索引获取数据
print(t[0])

#???切片获取数据
print(t[0:2])

#???获取全部数据
print(t.dict)

#???键名获取指定列
print(t["姓名"])

#???求平均年龄
print(sum(t["年龄"])?/?len(t["年龄"]))
  • 索引删除、切片删除和键删除,示例如下:
#???索引删除值
del?t[0]

#???切片删除值
del?t[0:?2]

#???键名删除指定列
del?t["姓名"]

文件中写入数据

import?tablib


#???准备数据
data_one?=?[
????('11/24/09',?'张三',?56.),
????('05/24/10',?'李四',?62.)
]

data_two?=?[
????('11/24/09',?'王二二',?56.),
????('05/24/10',?'皮球球',?62.)
]

#???创建对象
data?=?tablib.Dataset()
data.headers?=?['日期',?'姓名',?'分数']

#???循环插入数据
for?row?in?data_one:
????data.append(row)

#???循环插入数据
for?row?in?data_two:
????data.append(row)

#???往文件中写入数据
with?open('testing.xlsx',?'wb')?as?f:
????f.write(data.export('xlsx'))

这里的写入文件不需要先创建好;它会自动识别,不存在时会自动创建,存在时就进行覆盖。运行后完成后截图如下:


以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的点赞和分享哟,谢谢!

未完,待续…

一直都在努力,希望您也是!

更多内容欢迎关注公众号
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:38:08  更:2021-10-13 11:38:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:40:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码