Python中le-3怎么表述_知乎1800赞 | 用Python自动化办公能做到哪些有趣或有用的事情?...

本文主要是介绍Python中le-3怎么表述_知乎1800赞 | 用Python自动化办公能做到哪些有趣或有用的事情?...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知友:陈廷聿(1800+ 赞同)

利益相关:Python办公自动化课程的讲师

我想介绍一下我是如何从每天工作8小时,进化成每天工作10分钟的。

不涉及太多的技术细节,毕竟知乎是一个分(现)享(编)知(故)识(事)的地方

a925f16e65447bebef97fa7694a868b1.png

0.先自我介绍一下:

我不是程序员,大学学的也不是IT专业。

8be6d302f54f5b4a9c311f0b3d6fe967.png

我在一个主要业务是成品粮交易的企业工作,我的岗位的主要工作就是制作各类数据统计报表、台账、数据图表等等,反正就是各类日报,每天都要做一遍,此外还有什么周报月报什么的……这个岗位之前的同事,每天至少要花3.5到4个小时去折腾Excel,使用数据透视图、vlookup、其他各类函数去做出一份内含3000多个数据的日报。如果领导临时安排什么工作的话,那就要加班从浩如烟海的数据里找领导要的东西了。

1.噩梦开始时:

我刚接手工作时,我们有一个巨大的,达70多M的Excel文件,每次公司配发的破电脑打开就需要小二十分钟,里面存着我们近十年的采购的每一车的详细信息……然后里面的数据格式还都是混乱的,

打个比方,比如我们有个供货商全名叫:ABCD有限责任公司,

那么这个Excel中会存有

AB公司、

AB有限公司、

CD有限责任公司、

CD责任有限公司、

ACBD有限公司

ABD公司

等等等等名字

在我第一天看到这个Excel的时候

0bb335edce798f9551e0f14a3e3a6389.png

后来交接的同事告诉我,她用的Excel的 vlookup 函数,当匹配不上的时候,就手工搜索……

然后……我……

69a40328afd43f400e344205f77c4e7b.png

就这样,经历了噩梦般的几个月……

等到了2017年年初,看到一个词:

图灵完备。

一个图灵完备的语言理论上能解决任何算法。

|

|

V

显然,Python是一种图灵完备的语言。

|

|

V

那Python应该在理论上能替我处理所有事情(生孩子应该不行~~)

|

|

V

我为什么不试着用Python去替我完成工作呢?

2.走了一些弯路,但胜过原地踏步

我的第一步是从数据清洗开始的。(当然那时并不知道这个叫数据清洗)

先把刚才说的那个70M的Excel导成csv,去掉了其中不必要的格式、样式、对象等。

然后我想统一一下各个数据的标准名称,刚才说了,由于经手的人太多,同一个数据,怎么表述的都有,几十万的数据量,人工交叉比对的话显然是不现实的。(后来才知道了笛卡尔积这个词)

我第一步先使用了Excel自身的去重功能,将所有的供货商名称进行了一个去重,剩下了大概5000个左右的名称。

然后,作为一个懒人,我肯定不会用人工去比对了。

Python有一个库,叫做fuzzywuzzy,用它来进行模糊匹配。

from fuzzywuzzy import fuzzprint(fuzz.ratio("内容1", "内容2"))

会输出一个0——100的数字,数字越大代表这两个内容越相似。

所以我就写了一个循环,把这5000多个项目里面,匹配度超过70%以上的数据组都筛了出来,再去Excel里面手工替换(没办法,那时候还不会操作Excel)

然后整理了一下各个行列的位置,这样我就有了一个相对准确的数据源。

后来思考了一下,把数据存在Excel里面不是个长久之计啊,毕竟几十万数据呢,就想把数据导入到数据库里。大学时候考过计算机二级的Access(当然,虽然我考过,但是没考过……),就想导入Access,可是那个Python库没弄明白,硬是读不出来,就卡死了。

后来想到,之前自己从网上下载的某某私服的一键端里,有个MySQL数据库的一键启动方式,试了试居然能用,就把那个MySQL程序整个拷出来、清干净,作为了我的数据库。(当时想学怎么自己配置MySQL来着,没研究明白……这个数据库也就是我们现在提供的MySQL数据库的前身,当然了,我们现在提供的是重新制作的无毒的船新版本)

1f66f89ba0138e2a0b7b9d94d239eeff.png

然后就是使用Navicat导入Excel,使用pymysql库进行读取,这样,咱也是趁数据库的人了~

632dd0fd1dc02f668498d801f161061a.png

接下来,就是要进行数据分析了,由于当时没学会pandas,数据透视图的效果死活做不出来,不得已,只好新建N个列表,用一堆if...else... ,把同类数据存入同一个列表中,求和,求平均值之类的(笨办法也是办法,能抓住耗子就是好猫,先把程序跑起来能用就好)

分析出了结果,要写入excel了,但是由于没有研究明白怎么进行追加写入(xlutils库各种限定太多了……),只好使用xlwt把数据写到一个空Excel中,然后手工把一整片复制粘贴过去……反正也是解决了……能用了……

因为每天的仓库返回的数据还要向数据库里追加,就写了个录入程序,先用xlrd读取、然后fuzzywuzzy模糊匹配、最后pymysql写入。

这时候,我的工作已由每天七八个小时,进化到了每天4小时左右

(这一部分代码就不贴了,祖传代码向来被称为屎山,这些代码也是简陋的过分的那种……)

3.走上杂务工作的快车道

罗伯特·清琦写的那本《富爸爸穷爸爸》提出过一个概念,当你实现财务自由以后,你的财富积累就会走上良性循环的快车道,你的就会越来越容易提高被动收入。

同理,当你实现一部分的工作自动化以后,你就会走上一个“工作自由”的快车道,因为你有更多的时间能用来研究如何去更高效的完成余下的那堆工作,然后,每天工作的时间就会越来越短。

为什么上文中我有那么多括号写的各种搞不定?因为没时间啊!

现在好了,每天的工作时间已经被我砍了一半了,那么我就可以思考,如何解决各类的技术问题。

我学会了Excel的各种库,比如xlrd、xlwt、xlsxwriter、openpyxl、xlwings、win32com,能根据自己的需要选择需要用的库;还学会了同属Office系列的python-docx和python-pptx,开始尝试自动制作Word和PPT;学会了自动发邮件的stmp库、zmail库;学会了能操作微信发消息的itchat;学了爬虫、学了解压缩、学了调整图片大小、学了Word转pdf等等等等很多库或者功能。

随着学习,每天的工作时间越来越短……

现在,我每天的工作,只需要十分钟,最快记录四分钟,就能完成。

每天上班,第一件事,优雅的运行一个py文件,一堆import后面,只有

5a4289dbd54bfa106d8523cd4b6ea7db.png

就完成了日常工作,然后就是需要打印,手签,送各领导审阅的过程了。

一个保守的、传统的、几十年都不会起一丝波澜的国有企业,硬生生被我干出来了一个IT岗,升职加薪都已达成。

4、后续的思考

现在,我能极快的完成每天的工作,而后就是大片的学习思考的时间。

如今,

我已经,

我已经,

我已经,

把数据库移到了一台淘汰下来的办公电脑上,又用另外一台热备,作为公共联网数据库;

我已经,

用pyqt写了一个带gui的数据输出软件,所有同事都可以自由输出数据进行分析了;

我已经,

用pandas、matplotlib写了一个自动生成数据分析图片的软件,再做月报、周报什么的汇报材料,不用再通过Excel手工作图了;

我已经,

用pandas、matplotlib配合pyqt写了一个入库分析软件,大家输入时间段和限定条件后一键进行数据分析了,不会有同事老找我要数据了;

我已经,

用xlrd、python-docx写了一个合同生成器,旺季采购的同事不用焦头烂额的改合同了;

我已经,

用numpy配合pyqt做了一个购销存平衡软件,可以让领导们在决策时通过拖动滑块就可以实时展现不同购、销情况下库存情况了;

我已经,

用爬虫配合pymysql写了一个实时粮价获取数据库,告别了浏览网页逐行复制价格的方式;

未来,

未来,

未来,

未来,

我计划做一个公司内部网站,把之前的所有C/S架构的软件都改成B/S。

未来,

我计划做一个数据驾驶舱,供领导决策使用。

66cc73df56b0666b72076dd8b5eb00e8.png

图片来自网上,我就是想做成这样子

未来,

我计划做一个访客人脸识别,方便在重要客户进大门以后提醒领导到门口迎接。

未来,

我计划做一个更智能的爬虫,能在网上自动收集市场信息。

未来,

我计划做一个更智能的进销存平衡软件,能使用最优化进行购销平衡计算。

未来,

我计划做一套发票管理系统给财务、一套物料管理系统给物资、一套工资系统给HR……

那么,你的未来,是每天继续做着重复的工作,还是从工作中解放自己,去拥抱更大的世界呢。


 如何做到自动化办公 

ab5232c6d97e7ee9cf19af8d036df1d0.gif

推荐阅读:

  1. 送5本新书《TensorFlow深度学习算法原理与编程实战》

  2. 一篇AI打麻将的论文,理科生眼中的麻将是这样的

  3. 16个深度学习技巧实战,资深研究员的血泪教训

c4f5ac3de5050cb333482195994b23ef.png

这篇关于Python中le-3怎么表述_知乎1800赞 | 用Python自动化办公能做到哪些有趣或有用的事情?...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165988

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar