这次总结了工作这些年来切身经历的、经常被问到的办公效率低下问题,以及对应的解决方案,会把它们全部分享给你。
希望你学完这门课,能够告别重复、机械的工作,提高工作效率,同时也能把时间花在刀刃上,去提升自己的核心竞争力。
说到这里,你脑中是不是回忆起了一幕幕的低效工作场景:
需要对 Excel 文件中的内容进行拆分和合并,你要一个个手动拆分再合并;
文件夹里有大量图片需要重命名,你不得不挨个儿点击一张张图片,再重新命名;
网络中有大量新闻和图片需要下载,你就要手动把每个网页另存为文件;
需要把数据快速生成自己想要的图形,一个一个图形参数来设置;
需要让计算机在凌晨执行任务,你只能让闹钟在半夜把自己叫醒,人工执行,观察执行结果;
……
这些工作其实难度都不大,但它们有一个共同的特点,就是重复、机械的手工劳动,非常耗费时间和精力。实际上,我们换一种方法,就可以快速完成这些工作,节省数倍的时间。如你所想,这些都是我要通过这门课帮助你解决的问题。
那具体怎么解决呢?
解决这些低效问题,我的思路是什么?
其实,我们现在的办公环境,已经基本实现自动化了,Word、Excel、邮件、思维导图等各种各样的工具都非常顺手,表格的合并拆分、使用快捷键进行文件的各种操作等各种技巧也是随手一搜就能得到。但相应的问题也就来了,我们怎么用好这些工具、怎么内化这些技巧呢?
静下心来想一下,现在我们掌握的绝大多数办公工具和技巧,都是基于计算机的。那这个问题,就可以用计算机的思维从根儿上去解决了。所以,我们不妨引入《设计模式》的思路:代码封装得越“高级”,解决的问题就越具体;越深入计算机底层,解决的问题就越通用。
如果你暂时不理解这句话的意思也没关系,只需要明白这样一点就可以:要想快速提高办公效率,解决方法不在各种小技巧和小软件,而在于理解底层逻辑,以及加快人和计算机的交互过程,能够高效地解决输入(格式转换)、输出(格式统一)、控制(内容处理)、运算(查找、替换)、存储(文件保存和绘图),自然就能解决大部分的效率问题。
只要对计算机的体系结构稍有了解,你就会听说过冯 · 诺依曼结构:计算机由运算器、控制器、存储器、输入设备和输出设备这五部分组成。所以,我们解决用好自动化办公工具和技巧的方法,和经典的冯 · 诺依曼结构是相吻合的,就是理解计算机的底层逻辑,从而提升我们和计算机交互的效率。
说到这里,可以给你分享一段工作经历。曾经维护过日活超过 3 亿用户的微博私信平台,可以看看是怎么用计算机的思维,来提高自己和团队的工作效率的。
在一个业务模块中,需要批量替换 200 台服务器中的软件配置,而且每个服务器都有一个文件,需要将第五行内容, 由原有的接口版本 v1 统一替换成 v2。
面对这样的需求,其实有很多挑战在里面。第一个是替换的实效性,如果手动替换接口版本,由于服务器过多,用户就有可能访问到还没来得及替换的接口上,如后就有可能看到自己的消息是已读状态,一刷新页面,又变成了消息未读。第二个就是服务器数量很多,手动替换还没做完,下一个需求就接着来了。第三,手动替换这么多服务,非常容易出现拼写错误,也就是我们常说的手误,导致你要再花更多的时间来排捉 Bug。
这样很低效对不对?如果使用 Python 的话,我们就可以从 3 个方面来提升效率。
第一,用 Python 程序代替一个个的手动操作,实现文字内容的替换,这样就会解放人力,你的工作压力会减轻很多。
第二,可以通过 Python 批量控制服务器,让服务器自动完成这些工作。
第三个就是灵活性方面的优化了, 我们可以让这段程序定时运行,又可以让它们能够同时运行,从一个一个执行,到五个五个执行。
这三方面的优化,在课程中都会为你讲解到。
你可能会问,编程语言有那么多,比如 Java、Go 等等,我为什么要选择 Python 呢?或者说,为什么我会认为,Python 非常适合用来提升我们的工作效率呢?如果你不会 Python,可以学这门课吗?
不要着急,来和你说下 Python 语言的几个特点,你就能明白了。
为什么选择用 Python 来解决?
首先,Python 的用法非常简洁、灵活,就像汉语、英语这类自然语言一样容易理解和使用。世界著名程序员、软件开源运动旗手埃里克·雷蒙(Eric S. Raymond)在《如何成为一名黑客》中说道:
如果你不懂任何计算机语言,我建议从 Python 入门。它设计整洁,文档良好,对初学者很友好。
Python 用法简单,但是对于初学者,尤其是没有 Python 基础的话,那该怎么来学这门课呢?其实这也是我在设计这门课时重点考虑的一个问题。所以不用担心,为你准备好了 0 基础的学习路径。
第一,导读是整个课程的基石。导读部分我会为你讲解 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 个小程序。
编辑小提示:专栏的完整代码位置是 https://github.com/wilsonyin123/python_productivity,可点击链接下载查看。或者通过网盘链接提取后下载,提取码: 5wf1。