文本,我们将创建一个可重用的PDF库。 我们将对其进行精心设计,使其保持模块化并易于扩展。 以下是我们将在本文中学到的内容的列表:

  • 如何采用不同的数据格式
  • 创建和使用自定义样式表
  • 展开配置文件可以做什么
  • 创建一个简单的跨平台用户界面

创建用于创建PDF的模块的想法是,它允许您强制执行有关PDF生成方式的标准。 例如,您可以在模块中定义是否添加了页眉和页脚以及它们占用了多少空间。 您还可以定义字体,页边距,页面大小,页面编号和许多其他变量来控制PDF的外观。

为了使事情井井有条,我们将所有文件放入标有version_1,version_2等的文件夹中。当我们在出现的部分中切换到新版本时,一定会提及。

不同的数据格式

更新列表上的第一项是使我们的PDF库接受不同的数据格式。 我们将在这里采用最简单的方法。 在本文中,我们将更新代码,以便我们可以接受XML或JSON格式的数据文件。 为此,我们将仅查看传递到应用程序中的文件的扩展名。 如果您希望Python尝试找出文件本身的类型,则可能对第3方软件包python-magic感兴趣,您可以在此处找到。

无论如何,让我们稍微更新一下代码,以便它检查文件扩展名是什么,并相应地解析文件。 我们将从Python使用Reportlab处理PDF数据 - 自定义页眉和页脚中获取main6.py并将其另存为main.py。 我们会将所有更改保存到名为version_1的文件夹中。

现在,让我们看一下我们需要进行的更改:

代码略

我们需要做的第一件事是导入os模块。 我们将使用它来帮助我们很快找出文件扩展名。 我们还从解析器模块parse_json导入了一些新内容。 我们将使用它来解析JSON数据文件。 除此之外,我们现在确实不需要对get_args或parse_xml函数进行任何更新。 因此,让我们继续我们的main函数:

代码略

在这里,我们创建了一个支持扩展类型的列表,在本例中为JSON和XML文件类型。 然后,我们使用os.path.splitext提取文件扩展名,这将返回文件路径和扩展名本身的元组。 由于我们不在乎文件路径,因此我们将其分配给下划线字符,这是丢弃数据的常规方法。 接下来,我们检查提取的扩展名是否在我们创建的受支持扩展名列表中。 如果没有,我们将引发带有自定义错误消息的RuntimeError,以告诉用户出了什么问题。

最后的更改是检查扩展名是什么,然后调用适当的函数。 因此,如果传入XML文件,则要调用parse_xml,如果传入JSON文件,则要调用parse_json。

我们在这里缺少的一件事是我们从解析器导入的parse_json函数,让我们接下来写它! 打开一个新文件,并将其另存为parsers.py。 然后添加以下代码:

代码略

在这里,我们导入Python的json库,然后创建一个名为JSON的类。 创建类的原因是,我们希望将JSON编码的数据转换为具有与lxml.objectify相同的API的对象。 这样就消除了为不同数据类型编写代码的一些复杂性。 主应用程序不需要自己进行转换。 它依靠解析器模块来做到这一点。 实际上,我们可以(可能应该)将XML解析代码添加到此解析器模块中。 无论如何,这里的最后一段代码是parse_json函数,该函数只是打开JSON文件并将其转换为JSON对象,然后返回该对象。

我们需要更新的最后一段代码是header.py脚本:

代码略

多页数据文件

详情参阅 - 亚图跨际

Python使用Reportlab处理PDF数据 - 创建pdf库文件相关推荐

  1. pandas显示全部数据内容_1行Python代码就能挖掘数据!这个库太神奇啦!

    Peter Nistrup | 作者夏夜 | 译者lnfoQ | 来源 Pandas 是 Python 中处理数据的首选库,它使用起来很容易,非常灵活,能够处理不同类型和大小的数据,而且它有大量的函数 ...

  2. python从云端服务器读数据_audio 读取服务器文件

    PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...

  3. python从txt拿取数据_python从txt文件读取数据

    (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!) 1.读取TXT文件数据,并对其中部分数据进行划分.一部分作为训练集数据,一部分作为测试集数据 ...

  4. python爬虫-豆瓣爬取数据保存为html文件

    接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...

  5. python笔记之单行json数据组成的json文件按行解析:read_json()

    做个笔记 代码 data_time='./xxx/' file_name_1='xxx.json'def read_json(file_name):a_list=[]b_list=[]file_pat ...

  6. Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  7. 财富自由之python爬取天天基金排行数据,保存xls文件,慢慢分析

    1.前言 闲来无聊,最近迷恋上玩基金,真的是又菜瘾有大,刚好有朋友是做数据分析相关的,他想用excel分析基金历史数据,于是乎,让我去爬取天天基金上的排行数据. 2.xls文件结果展示 爬取了全部.股 ...

  8. python导出项目所依赖的所有的库文件以及安装

    python项目包的导入和导出 1.导出 pip freeze > filename.txt # filename.txt 可随意命名 # 同时filename.txt 文件中可自定义编辑,也是 ...

  9. tensorflow创建动态库文件来自定义op

    目前正在学习tensorflow自定义OP,刚学会如何添加和添加简单的op代码. 预备技能 对 C++ 有一定了解. 已经下载 TensorFlow 源代码并有能力编译它. 第一步:找一个文件夹存放你 ...

  10. 用Python读取轻轻松松背单词的GDS词库文件

    <轻轻松松背单词>是一个广泛使用的背单词软件,有丰富的词库资源.读取轻轻松松背单词GDS词库文件,可以在此基础上开发背单词类软件. #--------------------------- ...

最新文章

  1. 客快物流大数据项目(四十九):开发环境初始化
  2. 知乎用户和龙鹏-言有三:计算机视觉应该怎样入门?
  3. Roman to Integer - LeetCode
  4. mac osx 上Eclipse/CDT问题及解决方案
  5. www.beihua.edu.cn计划摘录
  6. PHP导出成word文档
  7. [webpack] 如何把代码内联进html中?
  8. Java开发两年:java简历包装工作经验
  9. js案例:动态生成表格
  10. linux usb有线网卡驱动_Linux系统安装R8169网卡驱动的方法
  11. 集群技术走向成熟 核心路由器的趋势
  12. Jetson TK1 刷机安装Ubuntu系统与Mini PCI-e无线网卡
  13. latex和word文档互相转换
  14. sqlserver查看历史死锁信息
  15. 一步步学习改变思维习惯
  16. 记win10安装cupy的cuda版本成功踩得坑!!!血泪教训!!
  17. 7-33 统计素数并求和 (20 分)
  18. vue控制滚动条滑到某个位置
  19. 不需要密码卸载Symantec Endpoint Protection的步骤
  20. 离线信号与连续信号伸缩变换的不同

热门文章

  1. Zoiper Iphone android 通话推荐设置!
  2. DHCPv6技术介绍
  3. 微信小程序视频+微信视频号视频下载教程
  4. html - html5 audio 音乐自动播放,循环播放等9款播放器
  5. 阿里播放器Aliplayer封装
  6. KiCad下载及安装教程
  7. 论文阅读:Deep forest/深度森林/gcForest
  8. (附源码)计算机毕业设计ssm大学生学科竞赛管理系统
  9. 计算机录屏幕和声音的软件是什么,电脑录屏软件带声音哪个好用 电脑录屏软件带声音软件...
  10. Vagrant安装CentOS7镜像