知乎上有人提問:用python進行辦公自動化都需要學習什麼知識呢?
這可能是很多非IT職場人士面臨的困惑,想把python用到工作中,卻不知如何下手? python在自動化辦公領域越來越受歡迎,批量處理簡直是加班族的福音。
前段時間,我在知乎專門就【python辦公自動化】學習路徑開了Live,講了python基礎、xlwings、docx、pptx、爬蟲、數據分析等內容。
live地址:https://www.zhihu.com/lives/1206528914648182784
自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次我就來理一理python自動化辦公的那些知識點。
- python基礎
- excel自動化
- ppt自動化
- word自動化
- 郵件處理
- 文件批量處理
- 數據處理與分析
- 自動化爬蟲
下面一一詳解。
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編程的基本概念,再去學其他的工具庫。
不然會很痛苦的。
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文件
當然最好是看官網教程: https://www.xlwings.org/
pandas是大家都熟悉的數據處理利器,它也支持excel的讀寫,接口友好。這個後面會講到。
如果你對python自動化處理excel很有興趣,也可以買一本專門的教材來看。
ppt自動化
python當然是支持ppt的自動化處理,主要的庫有pywin32com、pptx,可以創建、修改ppt文件。
推薦使用pptx庫,目前主流的ppt處理庫。
學習網站: https://python-pptx.readthedocs.io/en/latest/
word自動化
python操作Word的庫:
- python-docx、import docx:只對windows平臺有效
- pypiwin32、import win32com:跨平臺,但無法處理doc格式的word文本,doc格式不是基於xml的
- textract、import textract:它同時兼顧“doc”和“docx”,但安裝過程需要一些依賴。 你可以批量的用python生成word文件,推薦使用docx,不需要會太多。
學習網站: https://python-docx.readthedocs.io/en/latest/
郵件處理
python處理郵件也是極其便利的,smtplib、imaplib、email三個庫配合使用,實現郵件編寫、發送、接收、讀取等一系列自動化操作,省時省力。
寫過一個發送郵件教程,親測可用:
乾貨 | 解放雙手,用Python實現自動發送郵件看了其他很多教程都有各種各樣的問題,需要不斷改bug,所以這個大家先可以跑跑上面的代碼。
文件批量處理
文件處理包括批量修改或創建文件名、批量生成文檔、批量修改路徑等等重複性操作。如果一個個手工操作,那真的心累。
python在處理批量操作有得天獨厚的優勢,成千上萬的文件修改可能只需幾秒的時間。
os是python文件操作的庫,可以實現對電腦上文件的增刪改查。
學習網站: https://www.runoob.com/python3/python3-os-file-methods.html https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776
方法 作用
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 中 matplotlib, numpy, scipy, pandas? 小白入門Python數據科學全教程
自動化爬蟲
相信爬蟲是大家最感興趣的,python爬蟲有很多的實現庫,比如:urllib、requests、scrapy等,以及xpath、beautifulsoup等解析庫。
爬蟲入門容易,但學精難,所以初學者可以嘗試寫點簡單的爬蟲,比如豆瓣、知乎、微博呀。
案例都給你準備好了: 小白如何入門Python爬蟲 使用requests爬取拉勾網python職位數據 實操 | 從0到1教你用Python來爬取整站天氣網
推薦大家去學習requests、bs4來入門爬蟲,提供對應中文學習網站: https://2.python-requests.org//zh_CN/latest/ https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
其它
其它不常用的自動化辦公庫,像處理pdf、圖片、視音頻等,這裡不做過多介紹。 如果有興趣可以在本文末留言,你用過哪些逆天的python庫,解決了哪些問題?