• tablib源代码学习


    tablib简介

    -----------
    Tablib is a format-agnostic tabular dataset library, written in Python.
    Tablib 是一个格式未知的表格操作库,使用python编写,目前(2014-06-11)支持如下格式:Excel 、JSON 、YAML 、HTML、TSV 、CSV的导入/导出,及修改操作。实现方法是使用各种数据格式的python支持库(大多是各种格式的有明支持库)导入数据成list(列表,python 内置数据结构),每个list的成员就是数据表的一行(建立一个类Row)。对数据的操作就转化成对list和Row的操作。导出时,导出时又使用各库封闭的导出接口就可以了。

    官网:http://docs.python-tablib.org/en/latest/

    动机

    -----------
    学习优秀python库开源组织方式,学习优秀python代码编码规范和技巧。

    主要模块

    -----------

    1. docs

    使用类markdown的简单文档格式reStructText,通过Sphinx工作,可以生成html,pdf,epub,text等格式,python很多库都是这么组织其文档的。

    2. setup.py

    python库通用文件,tablib使用相关的操作,实现了python2.5--3.4的兼容工作。

    3. tablib/compat.py

    tablib库中处理兼容相关的文件,通过到python版本的测试,提供兼容的调用模块。

    4. tablib/core.py

    是tablib库中的核心文件,提供了重要的类如Row, Dataset, Databook,及初始化函数。

    Row是表格中行数据的类,提供了tag(标签),和row(行数据),都是用list保存,提供了行的操作接口。
    所有的行操作都是封装了list的操作。

    Dataset就是一个数据表,保存了多个 Row(行),也可以加一个headers(表头),都用list保存。Dateset中提供了数据的操作接口。

    Databook就类似一个数据库,可以有多张表,也类似excel中可以有多个datasheet,使用list保存,每项就是一个Dataset。


    detect(stream)函数,遍历支持的格式,使用对应格式封装的detect()接口测试文件的类型,返回一个元组:(format, stream)。format是格式对应的类,stream是文件流。

    import_set(stream),import_book(stream),先使用detect测试数据流类似,再用返回的类型做对应的导入操作。

    5. tablib/formats目录

    目录下定义了支持的文件格式:
    每种格式使用一个文件定义其封装的package库(下面会介绍),提供了三个tablib/core.py中调用的函数接口,detect,import_set, import_book.

    6. tablib/packages

    tablib使用的各种格式文件的支持库:
    这些库都是一些现在的成熟的库。

    总结

    ---------
    tablib使用多种表格格式的支持库,导出和导入文件,对数据表内容提供统一的操作接口。文件组织非常有条理,方便扩展,文档充足。






  • 相关阅读:
    第一课时之导读
    python学习之第十六课时--缩进(indentation)
    python学习之第十六课时--函数的作用及定义
    python学习之第十五课时--存址方式及拷贝
    Linux学习之第七课时--链接(link)文件
    Linux学习之第六课时--文件和目录操作管理命令
    Linux学习之第五课时--文本编辑器
    TOJ--1162---dfs(回溯)
    TOJ---3128---bfs(打印路径)
    TOJ---1502---map真强大
  • 原文地址:https://www.cnblogs.com/hustlijian/p/3782525.html
Copyright © 2020-2023  润新知