有人提问:用 python 进行办公自动化都需要学习什么知识呢?
这可能是很多非 IT 职场人士面临的困惑,想把 python 用到工作中,却不知如何下手? python 在自动化办公领域越来越受欢迎,批量处理简直是加班族的福音。
自动化办公无非是 excel、ppt、word、邮件、文件处理、数据分析处理、爬虫这些,这次我就来理一理 python 自动化办公的那些知识点。python 基础
excel 自动化
ppt 自动化
word 自动化
邮件处理
文件批量处理
数据处理与分析
自动化爬虫
具体也可以看我的相关Live
下面一一详解。
python 基础
能做这些的前提是会使用 Python,最起码要熟悉基本语法,可以编写小脚本。
对于 python 语法的要求,你可以对照 python 基础教程的部分查看需要学那些,找个免费视频教程跟着学,然后多敲代码练习。如果习惯看书的话,可以买本 python 入门书备查。
语法主要内容基本数据类型:不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)运算符:算术运算符、逻辑运算符、赋值运算符、比较运算符、位运算符...
数值类型:整型(Int)、浮点型(float)、复数(complex)
条件控制语句:if...elif...else 语句
循环语句:while 语句、for 语句
函数:def 定义函数、函数调用、参数传递、匿名函数...
迭代:迭代过程、迭代器、生成器、生成器表达式
文件操作:open()函数、read、readline、readlines、write...方法
os 模块:处理系统文件和目录
模块:模块导入、常用标准模块、常用第三方库
错误和异常:try/except 语句
面向对象:简单掌握面向对象概念即可
之前整理的 python 基础语法核心部分,仅供参考:
语法是关键,一定要理解 python 编程的基本概念,再去学其他的工具库。
不然会很痛苦的。
excel 自动化
office 家族其实都可以用 VBA 解决自动化的问题,但可能很多人不会用。
python 针对 excel 有很多的第三方库可以用,比如 xlwings、xlsxwriter、xlrd、xlwt、pandas、xlsxwriter、win32com、xlutils 等等。
这些库可以很方便地实现对 excel 文件的增删改写、格式修改等,当然并不推荐你全部都去尝试一下,这样时间成本太大了。使用 xlwings 和 pandas 这两个就够了,基本能解决 excel 自动化的所有问题。
xlwing 不光可以读写 excel,还能进行格式调整、VBA 操作,非常强大且易于使用。
之前写过一个 xlwings 的入门教程:
当然最好是看官网教程:
pandas 是大家都熟悉的数据处理利器,它也支持 excel 的读写,接口友好。这个后面会讲到。
如果你对 python 自动化处理 excel 很有兴趣,也可以买一本专门的教材来看。
ppt 自动化
python 当然是支持 ppt 的自动化处理,主要的库有 pywin32com、pptx,可以创建、修改 ppt 文件。
推荐使用 pptx 库,目前主流的 ppt 处理库。
word 自动化
python 操作 Word 的库:python-docx、import docx:只对 windows 平台有效
pypiwin32、import win32com:跨平台,但无法处理 doc 格式的 word 文本,doc 格式不是基于 xml 的
textract、import textract:它同时兼顾“doc”和“docx”,但安装过程需要一些依赖。 你可以批量的用 python 生成 word 文件,推荐使用 docx,不需要会太多。
邮件处理
python 处理邮件也是极其便利的,smtplib、imaplib、email 三个库配合使用,实现邮件编写、发送、接收、读取等一系列自动化操作,省时省力。
看了其他很多教程都有各种各样的问题,需要不断改 bug,所以这个大家先可以跑跑上面的代码。
文件批量处理
文件处理包括批量修改或创建文件名、批量生成文档、批量修改路径等等重复性操作。如果一个个手工操作,那真的心累。
python 在处理批量操作有得天独厚的优势,成千上万的文件修改可能只需几秒的时间。
os 是 python 文件操作的库,可以实现对电脑上文件的增删改查。
方法作用os.chdir(path)改变当前工作目录os.getcwd()返回当前工作目录os.listdir()返回 path 指定的文件夹包含的文件或文件夹的名字的列表os.makedirs(path[, mode])创建一个名为 path 的文件夹os.remove(path)删除路径为 path 的文件......
数据处理和分析
我就是做数据分析工作的,基本也是 python 作为主要工具,所以这一块毋庸置疑是 python 自动化办公最有价值的部分。
数据处理的库主要有:pandas、numpy、matplotlib、sklearn...
pandas 是一款不断进步的 python 数据科学库,它的数据结构十分适合做数据处理,并且 pandas 纳入了大量分析函数方法,以及常用统计学模型、可视化处理。
如果你使用 python 做数据分析,在数据预处理的过程,几乎九成的工作需要使用 pandas 完成。
在一些企业招分析师的笔试题中,pandas 已经作为必考的工具,所以如果你想要入行数据分析师,请努力学习使用 pandas。
numpy 是 python 的数值计算库,包括 pandas 之类的很多分析库都建立在 numpy 基础上。
numpy 的核心功能包括:ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组
用于对整组数据进行快速运算的标准数学函数(无需编写循环)
用于读写磁盘数据的工具以及用于操作内存映射文件的工具
线性代数、随机数生成以及傅里叶变换功能
用于集成由 C、C++、Fortran 等语言编写的代码的 A C API
numpy 之于数值计算特别重要是因为它可以高效处理大数组的数据。这是因为:比起 Python 的内置序列,numpy 数组使用的内存更少
numpy 可以在整个数组上执行复杂的计算,而不需要 Python 的 for 循环
matplotlib 和 seaborn 是 python 主要的可视化工具,建议大家都去学学,数据的展现和数据分析同样重要。
sklearn 和 keras,sklearn 是 python 机器学库,涵盖了大部分机器学习模型。keras 是深度学习库,它包含高效的数值库 Theano 和 TensorFlow。
这些是大家耳熟能详的神库,非常推荐去学习。
之前写过很多关于 python 数据分析处理的回答和文章,这里不再啰嗦了。
自动化爬虫
相信爬虫是大家最感兴趣的,python 爬虫有很多的实现库,比如:urllib、requests、scrapy 等,以及 xpath、beautifulsoup 等解析库。
爬虫入门容易,但学精难,所以初学者可以尝试写点简单的爬虫,比如豆瓣、知乎、微博呀。
其它
其它不常用的自动化办公库,像处理 pdf、图片、视音频等,这里不做过多介绍。
如果有兴趣可以在本文末留言,你用过哪些逆天的 python 库,解决了哪些问题?