6个 Python 办公黑科技,工作效率提升100倍!(附代码)
下班晚,加班久感觉已经成为现代打工人的通病,每天将大部分时间浪费在一些机械,重复的工作上,如何提升你自己的工作效率才是关键。
今天给大家分享6个 Python 办公小技巧,让你的工作效率倍增,欢迎大家学习收藏、喜欢点赞支持。
废话不说,让我们开始学习吧。
一、解析PDF(简历内推)
**应用场景:**简历内推(解析内容:包括不限于姓名、邮箱、电话号码、学历等信息)
**输入:**要解析的文件路径
输出:需要解析的内容
环境准备:python 3.6 、mac(下文中doc转docx是mac写法,windows更简单,导入win32的包即可)
依赖包:
from pdfminer.pdfparser import PDFParserfrom pdfminer.pdfdocument import PDFDocumentfrom pdfminer.pdfpage import PDFPagefrom pdfminer.pdfinterp import PDFResourceManagerfrom pdfminer.pdfinterp import PDFPageInterpreterfrom pdfminer.layout import LAParamsfrom pdfminer.converter import PDFPageAggregatordef 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 MIMETextfrom email.header import Headersender = '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]+1result=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级): 正义巨像,披甲龙龟
安妮、卡尔玛能力矩阵:
代码示例:
from pyecharts.charts import Piefrom pyecharts import options as optsfrom pyecharts.charts import Radarfrom 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>docxos.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实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。
6个 Python 办公黑科技,工作效率提升100倍!(附代码)相关推荐
- 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)
一.解析PDF(简历内推) 应用场景:简历内推(解析内容:包括不限于姓名.邮箱.电话号码.学历等信息) 输入:要解析的文件路径 输出:需要解析的内容(点我主页,详见历史文章) 环境准备:python ...
- ❤️ 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)❤️
- python docx 复制_99%的人都不知道的Python整理文件方法,效率提升100倍
现在人们经常要去下载或者接收一些文件. 比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢? 科研工作者.学生们可能需要阅读大量的文献,我们也需要阅读很多的电子书等等, ...
- python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...
使用了这个几个Python内置小工具,可以让你的工作效率提升一倍 我们将会详情4个Python解释器自身提供的小工具. 这些小工具在笔者的日常工作中经常使用到, 减少了各种时间的白费, 然而,却很容易 ...
- 4款实用国产办公软件,工作效率提升必备,还不赶紧收藏
现代生活中,办公软件已成为工作中必不可少的一部分.作为一个企业或个人,选择一款好的办公软件可以大大提高工作效率,从而节省时间和精力. 在国产办公软件中,有许多优秀的选择,下面就为大家介绍四款实用国产办 ...
- 学会针对永洪API接口的性能测试,工作效率提升百倍
性能测试是指针对产品的业务场景,通过设计场景和压力,对产品进行高并发量.大数据量的测试,主要目的是为了确定产品在高并发情况下的各项指标:平均处理时间,QPS,网络IO,磁盘读写等.永洪BI具有高耦合性 ...
- Excel教程:规范Excel表格设计,让工作效率提升百倍不止
在工作中我们经常需要花费大量的时间来整理表格,而真正用在数据汇总的时间可能仅仅只有几分钟,这也就是所谓的,整理5小时汇总2分钟,所以说规范的设计表格以及录入数据会大大的提高我们的工作效率,让工作效率提 ...
- 必须掌握的20个Excel技巧,让你的工作效率提升十倍
知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,宠爱自己,做一个独一无二的自己! 对于文 ...
- 昇兴集团:搭建帆软报表系统,打破数据孤岛,工作效率提升5倍
注:本文为帆软2021数据生产力大赛参赛案例,未经授权禁止转载. 1.企业简介 昇兴集团股份有限公司坐落于具有我国工业摇篮著称的福州马尾区.公司始创于1992年,自成立以来,始终用专业严谨的态度从事食 ...
最新文章
- 欢迎大家加入我的圈子
- lopa分析_HAZOP : 保护层分析之失效使能分析导则
- android 单例存储,Android 单例在内存中存储数据
- Boost:异步操作,需要boost :: asio :: async_compose函数的测试程序
- 华为xs第几批升级鸿蒙,华为和荣耀老机型用户有福:确定能批量升级到鸿蒙系统!...
- javaweb学习总结(二十三):jsp自定义标签开发入门
- nsstring 空值比较_用比较器的nulls排序具有空值的列表
- java开发工程师工作内容怎么写
- tidb数据库_异构数据库复制到TiDB
- #华为云·寻找黑马程序员#【代码重构之路】使用Pattern的正确姿势
- 30. SELinux
- java小项目-房屋出租系统
- java--String类常用方法大全
- 自制合成孔径雷达(2) SDR实现的对比(SDR实现测速雷达)
- Matlab中tic和toc用法
- python获取已打开的网页内容_用Python获取网页数据
- spss26没有典型相关性分析_SPSS进行典型相关分析结果总结
- BIOS修改mbr为gpt的步骤
- python sort函数原理_python sort函数原理
- 手机app推广渠道的安装来源追踪与归因