知乎上有人提問:用python進行辦公自動化都需要學習什麼知識呢?
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裏尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教學,電子書籍,以及課程的原始碼!
QQ羣:101677771
這可能是很多非IT職場人士面臨的困惑,想把python用到工作中,卻不知如何下手?python在自動化辦公領域越來越受歡迎,批次處理簡直是加班族的福音。
自動化辦公無非是excel、ppt、word、郵件、檔案處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。
python基礎
excel自動化
ppt自動化
word自動化
郵件處理
檔案批次處理
數據處理與分析
自動化爬蟲
下面 下麪一一詳解。
能做這些的前提是會使用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的map、reduce函數
一文搞懂Python迭代器和生成器
一文搞懂Python匿名函數
一文搞懂Python檔案讀寫
一文搞懂Python回圈技巧
一文搞懂Python錯誤和異常
一文搞懂python日期時間處理
語法是關鍵,一定要理解python程式設計的基本概念,再去學其他的工具庫。
不然會很痛苦的。
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
https://www.jianshu.com/p/b534e0d465f7
https://www.jianshu.com/p/de7efe591c12
當然最好是看官網教學:
https://www.xlwings.org/
pandas是大家都熟悉的數據處理利器,它也支援excel的讀寫,介面友好。這個後面會講到。
如果你對python自動化處理excel很有興趣,也可以買一本專門的教材來看。
python當然是支援ppt的自動化處理,主要的庫有pywin32com、pptx,可以建立、修改ppt檔案。
推薦使用pptx庫,目前主流的ppt處理庫。
學習網站:
https://python-pptx.readthedocs.io/en/latest/
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等解析庫。
爬蟲入門容易,但學精難,所以初學者可以嘗試寫點簡單的爬蟲,比如豆瓣、知乎、微博呀。