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

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

今天给大家分享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 = '[email protected]'

receivers = ['[email protected]']  # 接收邮件,可设置为你的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级): 正义巨像,披甲龙龟

6个 Python 办公黑科技,工作效率提升100倍!(附代码)_第1张图片

安妮、卡尔玛能力矩阵:

6个 Python 办公黑科技,工作效率提升100倍!(附代码)_第2张图片

代码示例:

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获取更高薪资,这里给大家分享一份Python学习资料。

朋友们如果有需要的话,可以点击下方链接领取或者V扫描下方二维码联系领取

CSDN大礼包,二维码失效时,点击这里领取:学习资料合集&相关工具&PyCharm永久使用版获取方式

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

6个 Python 办公黑科技,工作效率提升100倍!(附代码)_第3张图片

一、Python学习路线

image-20230619144606466

python学习路线图1

二、Python基础学习

1. 开发工具

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

图片

四、数据分析全套资源

五、Python面试集锦

1. 面试资料

在这里插入图片描述

在这里插入图片描述

2. 简历模板

6个 Python 办公黑科技,工作效率提升100倍!(附代码)_第4张图片

CSDN大礼包,二维码失效时,点击这里领取:学习资料合集&相关工具&PyCharm永久使用版获取方式

因篇幅有限,仅展示部分资料,添加上方即可获取

你可能感兴趣的:(python,制造,自动化)