你好,我是尹会生。欢迎你来到《Python自动化办公实战课》,在接下来的3个月时间里,我们一起通过办公自动化来提升工作效率。
工作15年来,我在游戏公司做过技术总监,也在新浪网做过技术经理,负责公司运维平台建设和相关工具的开发工作,几乎每天都在和Linux打交道。
在这门课之前,我已经在极客时间开设了两门视频课程:《零基础学 Python》和《Linux实战技能100讲》,为Python语言的初学者和运维工程师、开发工程师提供系统化的课程,目的就是解决他们在学习、实践中遇到的80%的问题。
目前,这两门课程已经有3万多名同学加入学习了。看到这些内容能够切实地帮助同学们解决他们的问题,我非常开心,也很受鼓舞。
所以,这次我又为你带来了《Python自动化办公实战课》这门专栏课程。我总结了工作这些年来切身经历的、经常被问到的办公效率低下问题,以及对应的解决方案,我会把它们全部分享给你。
希望你学完这门课,能够告别重复、机械的工作,提高工作效率,同时也能把时间花在刀刃上,去提升自己的核心竞争力。
说到这里,你脑中是不是回忆起了一幕幕的低效工作场景:
这些工作其实难度都不大,但它们有一个共同的特点,就是重复、机械的手工劳动,非常耗费时间和精力。实际上,我们换一种方法,就可以快速完成这些工作,节省数倍的时间。如你所想,这些都是我要通过这门课帮助你解决的问题。
那具体怎么解决呢?
其实,我们现在的办公环境,已经基本实现自动化了,Word、Excel、邮件、思维导图等各种各样的工具都非常顺手,表格的合并拆分、使用快捷键进行文件的各种操作等各种技巧也是随手一搜就能得到。但相应的问题也就来了,我们怎么用好这些工具、怎么内化这些技巧呢?
静下心来想一下,现在我们掌握的绝大多数办公工具和技巧,都是基于计算机的。那这个问题,就可以用计算机的思维从根儿上去解决了。所以,我们不妨引入《设计模式》的思路:代码封装得越“高级”,解决的问题就越具体;越深入计算机底层,解决的问题就越通用。
如果你暂时不理解这句话的意思也没关系,只需要明白这样一点就可以:要想快速提高办公效率,解决方法不在各种小技巧和小软件,而在于理解底层逻辑,以及加快人和计算机的交互过程,能够高效地解决输入(格式转换)、输出(格式统一)、控制(内容处理)、运算(查找、替换)、存储(文件保存和绘图),自然就能解决大部分的效率问题。
只要对计算机的体系结构稍有了解,你就会听说过冯 · 诺依曼结构:计算机由运算器、控制器、存储器、输入设备和输出设备这五部分组成。所以,我们解决用好自动化办公工具和技巧的方法,和经典的冯 · 诺依曼结构是相吻合的,就是理解计算机的底层逻辑,从而提升我们和计算机交互的效率。
说到这里,我可以给你分享一段我的工作经历。我曾经维护过日活超过3亿用户的微博私信平台,你可以看看我是怎么用计算机的思维,来提高自己和团队的工作效率的。
我们在一个业务模块中,需要批量替换200台服务器中的软件配置,而且每个服务器都有一个文件,需要将第五行内容, 由原有的接口版本v1统一替换成v2。
面对这样的需求,其实有很多挑战在里面。第一个是替换的实效性,如果手动替换接口版本,由于服务器过多,用户就有可能访问到还没来得及替换的接口上,如后就有可能看到自己的消息是已读状态,一刷新页面,又变成了消息未读。第二个就是服务器数量很多,手动替换还没做完,下一个需求就接着来了。第三,手动替换这么多服务,非常容易出现拼写错误,也就是我们常说的手误,导致你要再花更多的时间来排捉Bug。
这样很低效对不对?如果使用Python的话,我们就可以从3个方面来提升效率。
第一,用Python程序代替一个个的手动操作,实现文字内容的替换,这样就会解放人力,你的工作压力会减轻很多。
第二,我可以通过Python批量控制服务器,让服务器自动完成这些工作。
第三个就是灵活性方面的优化了, 我们可以让这段程序定时运行,又可以让它们能够同时运行,从一个一个执行,到五个五个执行。
这三方面的优化,我在课程中都会为你讲解到。
你可能会问,编程语言有那么多,比如Java、Go等等,我为什么要选择Python呢?或者说,为什么我会认为,Python非常适合用来提升我们的工作效率呢?如果你不会Python,可以学这门课吗?
不要着急,我来和你说下Python语言的几个特点,你就能明白了。
首先,Python的用法非常简洁、灵活,就像汉语、英语这类自然语言一样容易理解和使用。世界著名程序员、软件开源运动旗手埃里克·雷蒙(Eric S. Raymond)在《如何成为一名黑客》中说道:
如果你不懂任何计算机语言,我建议从 Python 入门。它设计整洁,文档良好,对初学者很友好。
Python用法简单,但是对于初学者,尤其是没有Python基础的话,那该怎么来学这门课呢?其实这也是我在设计这门课时重点考虑的一个问题。所以不用担心,我为你准备好了0基础的学习路径。
第一,导读是整个课程的基石。导读部分我会为你讲解Python最基础且最重要的五大语法部分,让你对Python有一个初步的了解,能够看懂基本的Python代码。这也是你入门Python学习的第一步。
同时,导读在整个课程中会起到一个引领的作用。其中的语法知识我会在之后的课程中讲解,所以在学习时如果有不懂的话,仍然可以回过头来看导读部分。
第二,一定要动手来操作,毕竟看一遍我的操作,跟你自己操作是不一样的。
第三,如果你有时间的话,我还建议你去抄写每一段代码。要知道,看一遍课程和把看的东西写出来的感觉是完全不一样的。这个建议我在之前的《零基础学Python》这门课中也提过,很多用户反映学习效果确实不错,提升速度很快。
问题都是在不断学习中解决掉的,所以最后我也建议你遇到问题不怕畏惧,跟着课程来慢慢学习就行了。
其次,Python的扩展库很丰富,可以满足非常多的复杂场景的需求,能够替代非常多的手工操作。这也是Python相对于其他编程语言的一大优势。
目前,Python的扩展库已经覆盖了文件、声音、视频、数据科学、深度学习等众多行业。通过这些扩展库,我们可以用Python连接Excel、Word、邮件等常用办公组件,轻松应对各类工作场景,不用自己手动写很多功能代码了。而连接方法也很简单,以操作Word文档为例,你只要掌握下面这行代码就可以了:
import docx
通过这样一行简单的代码,你的Python就能支持Word中的文字、字体、段落、样式、表格等各种功能进行读写操作了,当然了,为了实现你的各种定制需求,还需要继续编写代码(这里的优点是直接支持,其他语言是要先像是操作压缩文件一样,对docx格式解压缩,再对xml文件进行处理,非常复杂)。
最后,Python还有一个你无法抗拒的优点,那就是它的跨平台性。
也许有一天,你用的电脑的操作系统,从macOS变成了Windows,或者从Windows变成了macOS,那也完全不用担心。Python的跨平台特性,可以帮你做到不用修改任何一行代码,就可以让已经写好的程序直接在新的平台上运行。
总结来说,Python的简洁、扩展库丰富和跨平台特性这三点,就保证了你可以轻松学会这门课,用Python去实现办公自动化,提升自己的工作效率。
说了这么多,哪些工作可以用Python实现自动化,而我又会怎么给你讲这门课呢?
在开头的时候我也说了,要用计算机的思维去解决办公自动化工具和技巧的问题,所以我就把常见的30个机械、重复的工作场景,按照任务类型划分成了输入、运算、控制、存储和输出这5个模块。
“输入”模块:解决不同文件类型的批量合并和拆分问题
这类任务往往包含了格式相似的大量文件,比如Word、Excel、Txt文件,我会带着你用Python去进行批量合并和拆分。
“运算”模块:扩展常用的统计、搜索和排序功能
很多软件自带的统计、搜索和排序功能,都很好用,但不支持在多个文件或者跨类型文件中使用。所以,在这个模块我们要学习的就是,怎么通过Python进行扩展,让这些好用、常用的功能,可以支持多个文件或不同类型的文件。
“控制”模块:通过插件的方式增强办公软件以及周边软件、硬件的交互能力
办公软件的核心功能,通常是支持文字和表格等内容的相关操作,对控制外部设备相对较薄弱。例如,Word本身是不支持批量打印Word文件的,但批量打印又是一个常见的需求。这个需求,就可以通过脚本化来实现,达到打印自动化的目的。
“存储”模块:和文件相关的很多常用操作部分
在工作中,我们经常会面对这么几种需求:需要对大量文件进行重命名;需要通过网络批量下载视频和图片;需要在海量文件中快速找到自己想要的文件;等等。
这些需求最大的问题,就是我们需要手工重复操作,或者自带工具不好用。那么利用Python和文件、网络功能相结合,就完全可以实现目录下的批量改名、文件的批量下载,免去了手工重复操作的问题。
对于系统自带的文件查找工具来说,速度慢而且不够简洁,那我们可以使用Python根据自己定义的目录搜索,加快搜索文件的效率。
“输出”模块:智能化输出自己的工作成果
在这一部分,我要教你更直观和更智能地输出自己的工作成果。比如说你交付给同事的数据,可以通过Python一键转为图形,也可以根据你的需要将图形采用图片或网页的形式展示给你的同事,提高工作汇报的效率,更直观地展示自己的工作成果。
在讲解这5个模块、30个常见的办公场景的效率提升方法时,我还会带你剖析它们背后的原理,和你展示我分解任务、解决问题的思路。
因为提升办公效率的方法和技巧真的是非常非常多,但如果我们没能把这些方法和技巧做系统的梳理,那它们就是孤立的存在,知道得再多,也没办法根据自己的工作场景灵活运用。
如果到这里,你还是担心自己不会Python就学不会这门课、就没办法提升自己工作效率的话,我还可以再给你吃一颗定心丸,这也是我额外送你的一份礼物:在每节课的最后,我都会给你交付一个可运行的小程序。你只需要调整保存路径和几个简单的参数,就可以在自己的电脑上运行,就可以去应对你实际工作中相似场景的重复工作,提升自己的办公效率。
所以,不但能用Python让你的工作效率翻无数倍,还可以收获编程思维、解决问题的思路,以及30个小程序。
最后,我们来一起立个Flag吧:通过三个月的学习,让自己成为10x职场人!也欢迎你邀请你的小伙伴们一起来学习,共同成长!
小提示:专栏的完整代码位置是https://github.com/wilsonyin123/python_productivity,可自行点击链接查看。
评论