6个 Python 办公黑科技,工作效率提升100倍!(附代码)

2023-11-13

下班晚,加班久感觉已经成为现代打工人的通病,每天将大部分时间浪费在一些机械,重复的工作上,如何提升你自己的工作效率才是关键。

今天给大家分享6个 Python 办公小技巧,让你的工作效率倍增,欢迎大家学习收藏、喜欢点赞支持。

废话不说,让我们开始学习吧。

一、解析PDF(简历内推)

**应用场景:**简历内推(解析内容:包括不限于姓名、邮箱、电话号码、学历等信息)

**输入:**要解析的文件路径

输出:需要解析的内容

环境准备:python 3.6 、mac(下文中doc转docx是mac写法,windows更简单,导入win32的包即可)

依赖包:

from pdfminer.pdfparser import PDFParser

from pdfminer.pdfdocument import PDFDocument

from pdfminer.pdfpage import PDFPage

from pdfminer.pdfinterp import PDFResourceManager

from pdfminer.pdfinterp import PDFPageInterpreter

from pdfminer.layout import LAParams

from pdfminer.converter import PDFPageAggregator
 
def pdf_reader(file):
    fp = open(file, "rb")
    # 创建一个与文档相关联的解释器
    parser = PDFParser(fp)
    # PDF文档对象
    doc = PDFDocument(parser)
    # 链接解释器和文档对象
    parser.set_document(doc)
    # doc.set_paeser(parser)
    # 初始化文档
    # doc.initialize("")
    # 创建PDF资源管理器
    resource = PDFResourceManager()
    # 参数分析器
    laparam = LAParams()
    # 创建一个聚合器
    device = PDFPageAggregator(resource, laparams=laparam)
    # 创建PDF页面解释器
    interpreter = PDFPageInterpreter(resource, device)
    # 使用文档对象得到页面集合
    res = ''
    for page in PDFPage.create_pages(doc):
        # 使用页面解释器来读取
        interpreter.process_page(page)
        # 使用聚合器来获取内容
        layout = device.get_result()
        for out in layout:
            if hasattr(out, "get_text"):
                res = res + '' + out.get_text()
    return res

二、发送邮件

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: http://runoob.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

参数说明

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

案例:

from email.mime.text import MIMEText

from email.header import Header

sender = 'from@runoob.com'

receivers = ['1221121@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')

message['From'] = Header("不吃西红柿", 'utf-8')   # 发送者

message['To'] =  Header("测试", 'utf-8')        # 接收者

subject = 'Python SMTP 邮件测试'

message['Subject'] = Header(subject, 'utf-8')

    smtpObj = smtplib.SMTP('localhost')

    smtpObj.sendmail(sender, receivers, message.as_string())

except smtplib.SMTPException:

    print "Error: 无法发送邮件"

三、操作execl

1. 关联公式:Vlookup

vlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。

df1["订单明细号"].duplicated().value_counts()

df2["订单明细号"].duplicated().value_counts()

df_c=pd.merge(df1,df2,on="订单明细号",how="left")

2. 数据透视表

需求:想知道每个地区的业务员分别赚取的利润总和与利润平均数。

pd.pivot_table(sale,index="地区名称",columns="业务员名称",values="利润",aggfunc=[np.sum,np.mean])

3. 对比两列差异

需求:比较订单明细号与订单明细号2的差异并显示出来。

sale["订单明细号2"]=sale["订单明细号"]

sale["订单明细号2"][1:10]=sale["订单明细号2"][1:10]+1

result=sale.loc[sale["订单明细号"].isin(sale["订单明细号2"])==False]

4. 去除重复值

需求:去除业务员编码的重复值

sale.drop_duplicates("业务员编码",inplace=True)

5. 缺失值处理

sale["客户名称"]=sale["客户名称"].fillna(0)

sale.dropna(subset=["客户编码"])

6. 多条件筛选

需求:想知道业务员张爱,在北京区域卖的商品订单金额大于6000的信息。

sale.loc[(sale["地区名称"]=="北京")&(sale["业务员名称"]=="张爱")&(sale["订单金额"]>5000)]

7. 模糊筛选数据

需求:筛选存货名称含有"三星"或则含有"索尼"的信息。

sale.loc[sale["存货名称"].str.contains("三星|索尼")]

8. 分类汇总

需求: 北京区域各业务员的利润总额。

sale.groupby(["地区名称","业务员名称"])["利润"].sum()

9. 条件计算

需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?这些订单的利润总和和平均利润是多少?(或者最小值,最大值,四分位数,标注差)

sale.loc[sale["存货名称"].str.contains("三星")&(sale["税费"]>=1000)][["订单明细号","利润"]].describe()

10. 删除数据间的空格

需求:删除存货名称两边的空格。

sale["存货名称"].map(lambda s :s.strip(""))

四、画图分析

英雄联盟防御力:

防御能力最低的英雄(1级): 暗夜猎手,魔法猫咪,万花通灵 防御能力最高的英雄(10级): 正义巨像,披甲龙龟

img

安妮、卡尔玛能力矩阵:

img

代码示例:

from pyecharts.charts import Pie

from pyecharts import options as opts

from pyecharts.charts import Radar

    from pyecharts.charts import Radar

    # //由于雷达图传入的数据得为多维数据,所以这里需要做一下处理

    radar_data = [[10, 10, 10, 10, 10]]

    radar_data1 = [[2, 10, 3, 6, 3]]

    radar_data2 = [[1, 8, 7, 5, 8]]

    # //设置column的最大值,为了雷达图更为直观,这里的月份最大值设置有所不同

        ("物理", 100), ("魔法", 10), ("防御", 10),("难度", 10),("喜好", 10)

    radar.add_schema(schema)

    radar.add("满分", radar_data)

    # //一般默认为同一种颜色,这里为了便于区分,需要设置item的颜色

    radar.add("安妮", radar_data1, color="#E37911")

    radar.add("卡尔玛", radar_data2, color="#1C86EE")

if __name__ == '__main__':

五、解析word(docx、doc)

依赖包:

        if 'docx' in file:

            f = docx.Document(file)

            for para in f.paragraphs:

                res = res + '\n' +para.text

            # 先转格式doc>docx

            os.system("textutil -convert docx '%s'"%file)

            word_reader(file+'x')

            f = docx.Document(file+'x')

            for para in f.paragraphs:

                res = res + '\n' +para.text

        # print(file, 'read failed')

六、计算器

math模块为浮点运算提供了对底层函数库的访问:

>>> math.cos(math.pi / 4)

后续会陆陆续续补上一些其它有趣的办公自动化技巧

在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习,多多交流问题,互帮互助,这里有不错的学习教程和开发工具。
(这里每天都会不定时更新python不同题型和教程,希望大家一起学习,一起进步)

点此免费领取:CSDN大礼包:《python学习路线&全套学习资料》免费分享

Python学习大纲

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

入门学习视频

Python实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6个 Python 办公黑科技,工作效率提升100倍!(附代码) 的相关文章

随机推荐

  • 基于Python+Django的项目实战-招聘数据分析可视化系统(附源码+论文)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 基于Python的毕业设计 精彩专栏推荐 微信小程序毕业设计 安卓app毕业设计 Java毕业设计 招聘数据分析可视化系统 django 演示 源码及论文下载地址 https
  • 【mcuclub】矩阵键盘

    1 实物图 2 原理图 3 基本原理 使用8个I O口来进行16个按键的控制读取 用4条I O线作为行线 4条I O线作为列线组成键盘 当某个按键按下时 进行行列扫描 从而判断是第几行第几列的按键 进而进行整体按键值的确定 4 优点 使用8
  • Stephen Wolfram

    斯蒂芬 沃尔夫勒姆 Stephen Wolfram 1959年 物理学家 数学家 电脑工程师和商人 作为程序开发员 他是数学软件Mathematica的发明者之一 作为商人 他是Wolfram Research公司的创立者和首席执行官 在学
  • 基础知识汇总(python)

    1 注释 单行注释 多行注释 2 换行 total applePrice orangePrice milkPrice 3 变量 111 赋值给了 a a 111 变量名规则 字母 数字 下划线组成 数字不可以开头 不能关键字重用 变量名必须
  • 腾讯云分布式数据库可用性系统实践

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 在分布式环境当中 总是会遇到诸如 主机宕机 或 网络故障 等各种影响系统可用性的情况发生 轻则会导致投诉 重则导致企业核心数据的丢失 影响企业业绩和商誉 而如何确保分布式系统运行正常
  • 【自用】微信小程序体验版无法加载数据、无法调用接口

    一 原因 没有打开微信小程序调试模式 二 解决办法 1 进入小程序 点击右上角的3个点儿 2 点击右下角开发调试 3 点击 打开调试 4 点击 前往体验版 重新进行测试 5 问题解决 右下角出现角标 重新进行测试吧
  • QT 中信号与槽connect 放在哪个位置

    在使用QT 的时候 就一直犯嘀咕 两个对象之间使用信号与槽链接的时候 应该把connect 放在哪个位置呢 对象 A 对象 B两个对象 把connect 放在A 对象里还是放在B 对象里呢 在一次项目里面我突然自己领悟了一个方式 C 对象调
  • 大数据——Hive基础

    Hive基础 什么是Hive Hive的优势和特点 Hive的发展里程碑和主流版本 Hive与MapReduce Hive的基本架构 Hive元数据管理 Hive体系架构 Hive操作 Hive Interface 命令窗口模式 1 Hiv
  • 鹤舞云天服务器稳定,《御剑红尘》手游新服“鹤舞云天”即将开启!

    亲爱的少主们 一念入微梦 月下与君酌 桃漫枝满头 缘聚玄天处 伴随着飘渺的莺莺婉歌 让我们一同走进清梦星河的梦境深处 御剑红尘 手游计划于12月19日10 00开启全新一组服务器 鹤舞云天 吹笙玄鹤舞 长望碧云天 届时欢迎各位探险家前来进驻
  • C++复习第二天:类与对象

    1 什么是面向过程 什么是面向对象 C语言是面向过程的 关注的是过程 分析出解题过程的步骤 调用函数来实现 C 是基于面向对象的 关注的是对象 将一件事物划分成不同的对象 通过不同对象之间相互交互完成 2 面向对象的三大特性 面向对象的三大
  • Unity3D开发环境安装(windows系统)

    1 首先先下载软件包 http pan baidu com s 1imYVv 4 2版本 2 下载完后 解压会看到两个文件 运行第二个安装包 3 准备安装 这里直接上图了 这里全选 里面包括运行媒体之类的 这里自己选择安装目录 如果你C盘空
  • 第三章内存管理

    1 内存的基础知识 内存可存放数据 程序执行前需要先放到内存中才能被CPU处理 缓和CPU与硬盘之间的速度矛盾 指令中的地址参数直接给出了变量x的实际存放地址 物理地址 1 绝对装入 绝对装入 在编译时 如果知道程序将放到内存中的哪个位置
  • 5G应用场景300例 附下载地址

    为加快5G在重点产业领域的推广应用 推动我省5G产业发展 我厅会同山东联通 山东移动 山东电信在全国范围内筛选了解决方案 编制了 5G应用场景300例 关注公众号 互联互通社区 回复 5G应用场景300例 获取全部内容 5G移动通信技术基本
  • 运行python脚本时传入参数的几种方式(接收外部参数)

    运行python脚本时传入参数时三种格式对应不同的参数解析方式 分别为sys argv argparse tf app run 前两者是python自带的功能 后者是tensorflow提供的便捷方式 1 sys argv sys模块是很常
  • Q_UNUSED()函数的作用

    Q UNUSED 函数在程序中的作用 就如它所代表的英文一样 unused 即无用的意思 即Q UNUSED 函数在程序中没有实质性的作用 用来避免编译器警告 下面我们来看一组程序 void ColorItem paint QPainter
  • Flutter 环境配置

    Flutter 环境配置 电脑上面安装配置JDK 1 下载安装JDK 下载地址 https www oracle com technetwork java javase downloads jdk8 downloads 2133151 ht
  • 刚拿到esp32-cam想测试该怎么办?看这篇文章就可以了

    无意间对esp32 cam感兴趣 就去某pdd买了一个模块玩玩 组装摄像头的时候不要硬插进去 有个活动卡槽可以扣开 如下图 接下来去arduino官网或者中文社区下载 arduino官网 https www arduino cc en so
  • LeetCode题目笔记——206. 反转链表

    文章目录 题目描述 题目难度 简单 方法一 顺序遍历 C 代码 Python代码 方法二 递归 代码 题目描述 题目难度 简单 方法一 顺序遍历 我们只需顺序遍历一次列表 在原地将它们的指向依次逆转 需要注意的是 当链表本身为空的时候我们直
  • python数据分析-超市客流量高峰期分析--调用matplotlib折线图

    python数据分析 超市客流量高峰期分析 调用matplotlib折线图 数据处理 有一份超市订单csv格式数据源导入后如下 导入需要使用的模块 import pandas as pd import matplotlib pyplot a
  • 6个 Python 办公黑科技,工作效率提升100倍!(附代码)

    下班晚 加班久感觉已经成为现代打工人的通病 每天将大部分时间浪费在一些机械 重复的工作上 如何提升你自己的工作效率才是关键 今天给大家分享6个 Python 办公小技巧 让你的工作效率倍增 欢迎大家学习收藏 喜欢点赞支持 废话不说 让我们开