excel 自动化
office 家族其实都可以用 VBA 解决自动化的问题,但可能很多人不会用。
python 针对 excel 有很多的第三方库可以用,比如 xlwings、xlsxwriter、xlrd、xlwt、pandas、xlsxwriter、win32com、xlutils 等等。
这些库可以很方便地实现对 excel 文件的增删改写、格式修改等,当然并不推荐你全部都去尝试一下,这样时间成本太大了。使用 xlwings 和 pandas 这两个就够了,基本能解决 excel 自动化的所有问题。
xlwing 不光可以读写 excel,还能进行格式调整、VBA 操作,非常强大且易于使用。
之前写过一个 xlwings 的入门教程:
xlwings,让 excel 飞起来!
以及 xlrd、xlwt 的使用:
教你使用 Python 批量读写 excel 文件
你也可以查询 xlwings 具体用法(中文总结):
https://www.jianshu.com/p/e21894fc5501[1]
https://www.jianshu.com/p/b534e0d465f7[2]
https://www.jianshu.com/p/de7efe591c12[3]
pandas 是大家都熟悉的数据处理利器,它也支持 excel 的读写,接口友好。这个后面会讲到。
如果你对 python 自动化处理 excel 很有兴趣,也可以买一本专门的教材来看。
ppt 自动化
python 当然是支持 ppt 的自动化处理,主要的库有 pywin32com、pptx,可以创建、修改 ppt 文件。
推荐使用 pptx 库,目前主流的 ppt 处理库。
学习网站:
https://python-pptx.readthedocs.io/en/latest/[5]
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 三个库配合使用,实现邮件编写、发送、接收、读取等一系列自动化操作,省时省力。
写过一个发送邮件教程,亲测可用:
干货 | 解放双手,用 Python 实现自动发送邮件
看了其他很多教程都有各种各样的问题,需要不断改 bug,所以这个大家先可以跑跑上面的代码。
文件批量处理
文件处理包括批量修改或创建文件名、批量生成文档、批量修改路径等等重复性操作。如果一个个手工操作,那真的心累。
python 在处理批量操作有得天独厚的优势,成千上万的文件修改可能只需几秒的时间。
os 是 python 文件操作的库,可以实现对电脑上文件的增删改查。
学习网站:
https://www.runoob.com/python3/python3-os-file-methods.html[7]
https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776[8]
方法作用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 等解析库。
爬虫入门容易,但学精难,所以初学者可以尝试写点简单的爬虫,比如豆瓣、知乎、微博呀。
案例都给你准备好了:
小白如何入门 Python 爬虫
使用 requests 爬取拉勾网 python 职位数据
实操 | 从 0 到 1 教你用 Python 来爬取整站天气网
推荐大家去学习 requests、bs4 来入门爬虫,提供对应中文学习网站:
https://2.python-requests.org//zh_CN/latest/[9]
https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/[10]