• 花10分钟写一个Python脚本,搞定了初中老师一下午的工作


    有个朋友是一个初中老师。嗯,教学行政两手抓的那种初中老师。

    一天晚上突然微信问我,怎么把图片转成PDF。懵了一下,这个直接打印成PDF不就可以了?

    遂告诉他,结果感觉两个人不是一个世界的:

    好不容易教他把图片放Word里面打印,结果发现他的需求并不止于此:

    没辙,送佛送到西呗。继续挖他的需求:

    还有需要特殊处理的地方:

    提炼了一下他的需求:

    1. 有两百多张用手机拍的学生XXX档案资料;

    2. 已经按照每个学生的名字编好了号;

    3. 需要每个学生按照顺序 + 公共的图片,组合成一个新的PDF文件;

    4. 生成的文件体积大小需要在20MB以内;

    现状是这样的图片文件:

    需要按照一定的图片顺序进行排序并转换PDF。

    总结起来,也就是处理文件,将图片拼接组合成PDF。这个小需求,用Python实现起来轻轻松松。

    梳理一下这个任务的几个关键点:

    缩放图片

    因为图片使用手机拍摄的,现有的手机动不动就是几千万的像素。拍一张照片,十几兆的大小是逃不了的。而需求最终每一个PDF的大小不超过20MB,缩放图片是必须要做的。

    在 Python 中处理图片很经典的第三方模块是 Pillow,通过它可以对图像进行各种操作,当然也不限于缩小图片。

    上述代码就把图片缩小到了1401*1867像素大小。

    图片转PDF

    在这个任务里面,核心的需求是把图片转成 PDF 格式的文件。Python 中图片转 PDF 的功能有很多模块可以实现,在此州的先生选用的是 img2pdf。

    直接调用img2pdf.convert()方法,将图片路径或图片列表路径作为参数传递进去,就可以得到一个转换好的 PDF 文件对象。

    其 PyPI 的链接为:https://pypi.org/project/img2pdf/ ,感兴趣的朋友可以详细地了解其使用方法。

    图像排列规则

    因为需要按照一定的顺序对照片进行排序,然后还有一个特殊的情况,所以在对原始图片进行遍历的时候,需要进行一番处理,最后生成每一个人的图片的列表。

    完整步骤

    在对任务的关键点有了认识之后,我们按照流程,就可以轻松完成这个任务。

    1. 遍历原始图片文件夹,缩小图片,并将其另存到另一个文件夹;

    2. 遍历新图片的文件夹,生成除了公共图片之外的所有学生姓名列表;

    3. 遍历学生姓名列表,按照指定的图片排序规则,生成每个学生的图片列表;
      3.1 生成每个学生的图片列表之后,新建一个文件,将图片列表转为PDF;

    以上4步,就完成了这个手工操作浪费时间且令人抓狂的任务。运行代码不出一分钟,所有学生的PDF文件都已生成完成:

    算上找模块的时间,花在代码上的时间满打满算20分钟。

    瞬间把一个快炸毛的老师:

    的毛给顺了下去:

    注意:如果你是打算找python高薪工作的话。我建议你多写点真实的企业项目积累经验。不然工作都找不到,当然很多人没进过企业,怎么会存在项目经验呢? 所以你得多找找企业项目实战多练习下撒。如果你很懒不想找,也可以进我的Python交流圈:1156465813。群文件里面有我之前在做开发写过的一些真实企业项目案例。你可以拿去学习,不懂都可以在裙里找我,有空会耐心给你解答下。

    以下内容无用,为本篇博客被搜索引擎抓取使用
    (* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)
    python 是干什么的 零基础学 python 要多久 python 为什么叫爬虫
    python 爬虫菜鸟教程 python 爬虫万能代码 python 爬虫怎么挣钱
    python 基础教程 网络爬虫 python python 爬虫经典例子
    python 爬虫
    (* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)
    以上内容无用,为本篇博客被搜索引擎抓取使用

  • 相关阅读:
    图论集合
    无向连通图求割点(tarjan算法去掉改割点剩下的联通分量数目)
    河南省第七届ACM程序设计大赛总结
    单源最短路(spfa),删边求和
    最小圆覆盖
    二分图最大独立集
    二分图最少路径覆盖
    二分图最少点覆盖
    二分图最大匹配(匈牙利算法)
    最小费用最大流模板题
  • 原文地址:https://www.cnblogs.com/shuchongzeishuai/p/13935701.html
Copyright © 2020-2023  润新知