python海龟图画龙珠_火影,海贼王,七龙珠,还在为漫画书发愁!我用Python一键生成电子漫画书...
小时候看漫画都是要买书的,一本好几块钱,成本那个高啊后来可以在线看漫画,感觉真是爽
不过近几年新的问题又出现了:漫画网站广告太多,更重要的是越来越多的作品、章节出于各种原因被下架、限制观看。为了提升观看体验,我通常会把漫画打包下载到本地。
01.素材准备
说起漫画的下载,途径可是非常的多,最直接的是使用一些漫画下载器去下载网站上的在线漫画;有兴致的朋友也可以自己写漫画爬虫,Github上也有很多类似的爬虫项目可以直接拿来用;实在不行就到一些专门的漫画下载网站打包下载。下图就是我最近下载的漫画图片。
关于漫画图片的获取不是本文的重点,这里想说的是,通过以上途径获取到的散图,放到电脑上看还行,但是如果要在手机上观看,大量图片的管理多少有些麻烦,图片从电脑端到手机端的传输也存在问题。所以就想到写一个python脚本,自动把大批量的图片按照章节(文件夹)分类合并为一个pdf文件,这样一来无论是传输还是观看都方便多了。
02.实战开始
此处的基本思路是先把每张图片转化成单张的pdf,然后把属于同一章节的pdf进行合并。图片转化为pdf使用的是reportlab库,多个pdf合并使用的则是PyPDF2库,这两个库都是可以直接使用pip来安装的,这里不再赘述。
1).图片转pdf
reportlab库中有个pdfgen.canvas包,能够新建指定大小的空白pdf,还能把图片绘制到这张pdf中。那么我们就可以使用PIL库读入一幅图片,获取图片的尺寸,然后建立相同大小的空白pdf文件,最后将这张图绘制到新建的pdf中。代码如下:
其中datapath是原图所在路径,ficFile是原图片文件,新生成的pdf文件还是存储在原图目录中,下图就是转化后的pdf效果:
2).pdf合并
pdf的合并需要用到PyPDF2包中的PdfFileMerger函数,来看下面这段代码:
其中,get_files是自定义函数,用来获取指定目录下的特定后缀的文件列表(这里我们获取所有的pdf文件);之后新建一个PdfFileMerger()对象,将获取到的所有单张pdf依次添加进来,实现多个pdf文件的合并,最后将合并后的pdf文件保存并输出到python脚本的同一目录。
3).文件管理
上面实现的只是一些基本的功能函数,要让程序顺利跑起来还需加入一些文件管理的代码。以我新下载的YQDQ这部漫画为例,这本漫画共13本,每一本的漫画图片都存储在自己的目录中,如图:
我们需要做的是,依次访问每一个文件夹,将其下的所有图片转化为pdf然后合并,生成的pdf文件以各文件夹名称进行命名,并存储到根目录中。其实这些逻辑有一部分在上面的代码中已经有所体现,我们来看主函数的代码:
关于get_files函数我们之前也提到过,这里一并放出函数代码和脚本引用的包,这样一来该脚本的所有代码就完整了,大家可以放心使用。
03.总结一下
运行脚本,最终好耗时24秒,生成了204M大小的13个pdf文件,如图:
目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。
python海龟图画龙珠_火影,海贼王,七龙珠,还在为漫画书发愁!我用Python一键生成电子漫画书...相关推荐
- python海龟图画龙珠_阿里云天池龙珠计划——Python基础入门第2课:变量和赋值...
阿里云天池龙珠计划--Python基础入门第2课:变量和赋值 [我是测试题2]下面这段代码的运行结果是什么? # 运行一下结果就出来了 a = "hello" b = " ...
- python海龟图画龙珠_Python批量复制修改文件名[七龙珠版]
之前下了好多版本的七龙珠,终于找到灵感工作室出的高清的全是辽艺国语配音的第一部全集.可惜名字略有瑕疵,不带每集的标题,然后另一个ED2000.COM下载的都带标题,就想把每个标题复制过来,今天有空搞了 ...
- python海龟图画龙珠_Python selenium+webdriver 实战龙珠直播
selenium是一个自动化的web应用测试工具,直接可以运行在浏览器中模拟用户进行操作,有点类似于机器人,可以模拟用户进行点击,登陆,输入等操作. webdriver可以看成是驱动器,用来驱动我们的 ...
- python海龟图画龙珠_DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 02:DAY5
今天进入训练营的第5天,今天的主要内容是:字符串.字典. 字符串字符串的定义 字符串的切片与拼接 字符串的常用内置方法 字符串格式化 字典可变类型与不可变类型 字典的定义 创建和访问字典 字典的内置方 ...
- python海龟图画龙珠_DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 02:DAY4
进行到了训练营的第四天,进入了下一个环节Task2,Task2还是python的基础内容,主要包括:列表 元组 字符串 字典 集合 序列 DAY 4 的学习内容:列表.元组 1 列表 1.1 列表的定 ...
- python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...
在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...
- python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!
原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...
- java与python多态的区别_如果未调用父构造函数(与Java不同),多态性在Python中如何工作? - java...
因此,父类构造函数是在Java中调用的,而在Python中则不是.如果这意味着未创建父对象,那么如何在Python中成功调用def function-这是怎么回事? Python代码 class Pa ...
- python 5的倍数_查找所有低于1000的数字的和,这是Python中3或5的倍数
python 5的倍数 Sometimes, we need to find the sum of all integers or numbers that are completely divisi ...
最新文章
- 只适合小模型小训练集的交叉验证
- 谷歌zxing 二维码生成工具
- python基础——导入模块
- python 控制qq_最必要的最小建议集:写给刚入门编程(python)的同学
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
- 给人工智能新手,两份不同阶段的资料
- C++知识整理(在此感谢大牛的整理)
- 【Proteus仿真8086】往8086 内存中写入数据
- 一种将排序值换算为得分值的方法
- BZOJ1397 : Ural 1486 Equal squares
- 三端稳压管型号选型对照大全-KIA半导体
- ListView分页操作
- 1688api 图片搜索功能 item_search_img-按图搜索1688商品(拍立淘)
- 商业方向的大数据专业_大数据行业5个职位方向
- 在一个局域网中,共享的项目别人访问不了,解决方法
- mac tortoisesvn客户端_tortoisesvn mac版下载
- HashMap非线程安全问题
- 如何帮银行保持长期竞争力?融360天机公布独家秘诀
- 学生上课签到系统开发总结
- 虚拟机从路由器获取宽带拨号账号密码
热门文章
- burp爆破线程设置多少_你知道线程池创建多少线程比较合理吗?
- Spark Master的注册机制与状态管理
- 数据分析方法-聚类算法
- NYU Google: 知识蒸馏无处不在,但它真的有用吗?
- 腾讯天衍实验室招聘科研实习生
- 文本分类实战技巧(tricks)汇总
- 2019最新拼多多Java面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀
- 基于TextRank算法的文本摘要(附Python代码)
- IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题
- 论文笔记(Neural Graph Collaborative Filtering)