知乎上有人提問:用python進(jìn)行辦公自動(dòng)化都需要學(xué)習(xí)什么知識(shí)呢?
這可能是很多非IT職場(chǎng)人士面臨的困惑羊瘩,想把python用到工作中泰佳,卻不知如何下手?
python在自動(dòng)化辦公領(lǐng)域越來越受歡迎困后,批量處理簡(jiǎn)直是加班族的福音
自動(dòng)化辦公無非是excel乐纸、ppt、word摇予、郵件汽绢、文件處理、數(shù)據(jù)分析處理侧戴、爬蟲這些宁昭,這次我就來理一理python自動(dòng)化辦公的那些知識(shí)點(diǎn)。
- python基礎(chǔ)
- excel自動(dòng)化
- ppt自動(dòng)化
- word自動(dòng)化
- 郵件處理
- 文件批量處理
- 數(shù)據(jù)處理與分析
- 自動(dòng)化爬蟲
下面一一詳解酗宋。
python基礎(chǔ)
能做這些的前提是會(huì)使用Python积仗,最起碼要熟悉基本語(yǔ)法,可以編寫小腳本蜕猫。
對(duì)于python語(yǔ)法的要求寂曹,你可以對(duì)照python基礎(chǔ)教程的部分查看需要學(xué)那些,找個(gè)免費(fèi)視頻教程跟著學(xué),然后多敲代碼練習(xí)隆圆。如果習(xí)慣看書的話漱挚,可以買本python入門書備查。
語(yǔ)法 | 主要內(nèi)容 |
---|---|
基本數(shù)據(jù)類型 | 不可變數(shù)據(jù)(3 個(gè)):Number(數(shù)字)渺氧、String(字符串)旨涝、Tuple(元組) 可變數(shù)據(jù)(3 個(gè)):List(列表)、Dictionary(字典)侣背、Set(集合) |
運(yùn)算符 | 算術(shù)運(yùn)算符白华、邏輯運(yùn)算符、賦值運(yùn)算符贩耐、比較運(yùn)算符弧腥、位運(yùn)算符... |
數(shù)值類型 | 整型(Int)、浮點(diǎn)型(float)憔杨、復(fù)數(shù)(complex) |
條件控制語(yǔ)句 | if...elif...else語(yǔ)句 |
循環(huán)語(yǔ)句 | while語(yǔ)句鸟赫、for語(yǔ)句 |
函數(shù) | def定義函數(shù)、函數(shù)調(diào)用消别、參數(shù)傳遞抛蚤、匿名函數(shù)... |
迭代 | 迭代過程、迭代器寻狂、生成器岁经、生成器表達(dá)式 |
文件操作 | open()函數(shù)、read蛇券、readline缀壤、readlines、write...方法 |
os模塊 | 處理系統(tǒng)文件和目錄 |
模塊 | 模塊導(dǎo)入纠亚、常用標(biāo)準(zhǔn)模塊塘慕、常用第三方庫(kù) |
錯(cuò)誤和異常 | try/except語(yǔ)句 |
面向?qū)ο?/td> | 簡(jiǎn)單掌握面向?qū)ο蟾拍罴纯?/td> |
語(yǔ)法是關(guān)鍵,一定要理解python編程的基本概念蒂胞,再去學(xué)其他的工具庫(kù)图呢。
不然會(huì)很痛苦的。
excel自動(dòng)化
office家族其實(shí)都可以用VBA解決自動(dòng)化的問題骗随,但可能很多人不會(huì)用蛤织。
python針對(duì)excel有很多的第三方庫(kù)可以用,比如xlwings鸿染、xlsxwriter指蚜、xlrd、xlwt涨椒、pandas摊鸡、xlsxwriter绽媒、win32com、xlutils等等柱宦。
這些庫(kù)可以很方便地實(shí)現(xiàn)對(duì)excel文件的增刪改寫些椒、格式修改等,當(dāng)然并不推薦你全部都去嘗試一下掸刊,這樣時(shí)間成本太大了。使用xlwings和pandas這兩個(gè)就夠了赢乓,基本能解決excel自動(dòng)化的所有問題忧侧。
xlwing不光可以讀寫excel,還能進(jìn)行格式調(diào)整牌芋、VBA操作蚓炬,非常強(qiáng)大且易于使用。
以及xlrd躺屁、xlwt的使用:
教你使用Python批量讀寫excel文件
你也可以查詢xlwings具體用法(中文總結(jié)):
http://www.reibang.com/p/e21894fc5501
http://www.reibang.com/p/b534e0d465f7
http://www.reibang.com/p/de7efe591c12
pandas是大家都熟悉的數(shù)據(jù)處理利器肯夏,它也支持excel的讀寫,接口友好犀暑。這個(gè)后面會(huì)講到驯击。
如果你對(duì)python自動(dòng)化處理excel很有興趣,也可以買一本專門的教材來看耐亏。
ppt自動(dòng)化
python當(dāng)然是支持ppt的自動(dòng)化處理徊都,主要的庫(kù)有pywin32com、pptx广辰,可以創(chuàng)建暇矫、修改ppt文件。
推薦使用pptx庫(kù)择吊,目前主流的ppt處理庫(kù)李根。
學(xué)習(xí)網(wǎng)站:
https://python-pptx.readthedocs.io/en/latest/
word自動(dòng)化
python操作Word的庫(kù):
- python-docx、import docx:只對(duì)windows平臺(tái)有效
- pypiwin32几睛、import win32com:跨平臺(tái)房轿,但無法處理doc格式的word文本,doc格式不是基于xml的
-
textract枉长、import textract:它同時(shí)兼顧“doc”和“docx”冀续,但安裝過程需要一些依賴。
你可以批量的用python生成word文件必峰,推薦使用docx洪唐,不需要會(huì)太多。
學(xué)習(xí)網(wǎng)站:
https://python-docx.readthedocs.io/en/latest/
郵件處理
python處理郵件也是極其便利的吼蚁,smtplib凭需、imaplib问欠、email三個(gè)庫(kù)配合使用,實(shí)現(xiàn)郵件編寫粒蜈、發(fā)送顺献、接收、讀取等一系列自動(dòng)化操作枯怖,省時(shí)省力兜粘。
看了其他很多教程都有各種各樣的問題,需要不斷改bug轩猩,所以這個(gè)大家先可以跑跑上面的代碼上炎。
文件批量處理
文件處理包括批量修改或創(chuàng)建文件名、批量生成文檔蕊程、批量修改路徑等等重復(fù)性操作椒袍。如果一個(gè)個(gè)手工操作,那真的心累藻茂。
python在處理批量操作有得天獨(dú)厚的優(yōu)勢(shì)驹暑,成千上萬(wàn)的文件修改可能只需幾秒的時(shí)間。
os是python文件操作的庫(kù)辨赐,可以實(shí)現(xiàn)對(duì)電腦上文件的增刪改查优俘。
學(xué)習(xí)網(wǎng)站:
https://www.runoob.com/python3/python3-os-file-methods.html
https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776
方法 | 作用 |
---|---|
os.chdir(path) | 改變當(dāng)前工作目錄 |
os.getcwd() | 返回當(dāng)前工作目錄 |
os.listdir() | 返回path指定的文件夾包含的文件或文件夾的名字的列表 |
os.makedirs(path[, mode]) | 創(chuàng)建一個(gè)名為path的文件夾 |
os.remove(path) | 刪除路徑為path的文件 |
... | ... |
數(shù)據(jù)處理和分析
我就是做數(shù)據(jù)分析工作的,基本也是python作為主要工具肖油,所以這一塊毋庸置疑是python自動(dòng)化辦公最有價(jià)值的部分兼吓。
數(shù)據(jù)處理的庫(kù)主要有:pandas、numpy森枪、matplotlib视搏、sklearn...
pandas是一款不斷進(jìn)步的python數(shù)據(jù)科學(xué)庫(kù),它的數(shù)據(jù)結(jié)構(gòu)十分適合做數(shù)據(jù)處理县袱,并且pandas納入了大量分析函數(shù)方法浑娜,以及常用統(tǒng)計(jì)學(xué)模型、可視化處理式散。
如果你使用python做數(shù)據(jù)分析筋遭,在數(shù)據(jù)預(yù)處理的過程,幾乎九成的工作需要使用pandas完成暴拄。
在一些企業(yè)招分析師的筆試題中漓滔,pandas已經(jīng)作為必考的工具,所以如果你想要入行數(shù)據(jù)分析師乖篷,請(qǐng)努力學(xué)習(xí)使用pandas响驴。
numpy是python的數(shù)值計(jì)算庫(kù),包括pandas之類的很多分析庫(kù)都建立在numpy基礎(chǔ)上撕蔼。
numpy的核心功能包括:
- ndarray豁鲤,一個(gè)具有矢量算術(shù)運(yùn)算和復(fù)雜廣播能力的快速且節(jié)省空間的多維數(shù)組
- 用于對(duì)整組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)(無需編寫循環(huán))
- 用于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具
- 線性代數(shù)秽誊、隨機(jī)數(shù)生成以及傅里葉變換功能
- 用于集成由C、C++琳骡、Fortran等語(yǔ)言編寫的代碼的A C API
numpy之于數(shù)值計(jì)算特別重要是因?yàn)樗梢愿咝幚泶髷?shù)組的數(shù)據(jù)锅论。這是因?yàn)椋?/p>
- 比起Python的內(nèi)置序列,numpy數(shù)組使用的內(nèi)存更少
- numpy可以在整個(gè)數(shù)組上執(zhí)行復(fù)雜的計(jì)算楣号,而不需要Python的for循環(huán)
matplotlib和seaborn是python主要的可視化工具最易,建議大家都去學(xué)學(xué),數(shù)據(jù)的展現(xiàn)和數(shù)據(jù)分析同樣重要炫狱。
sklearn和keras耘纱,sklearn是python機(jī)器學(xué)庫(kù),涵蓋了大部分機(jī)器學(xué)習(xí)模型毕荐。keras是深度學(xué)習(xí)庫(kù),它包含高效的數(shù)值庫(kù)Theano和TensorFlow艳馒。
這些是大家耳熟能詳?shù)纳駧?kù)憎亚,非常推薦去學(xué)習(xí)。
之前寫過很多關(guān)于python數(shù)據(jù)分析處理的回答和文章弄慰,這里不再啰嗦了第美。
自動(dòng)化爬蟲
相信爬蟲是大家最感興趣的,python爬蟲有很多的實(shí)現(xiàn)庫(kù)陆爽,比如:urllib什往、requests、scrapy等慌闭,以及xpath别威、beautifulsoup等解析庫(kù)。
爬蟲入門容易驴剔,但學(xué)精難省古,所以初學(xué)者可以嘗試寫點(diǎn)簡(jiǎn)單的爬蟲,比如豆瓣丧失、知乎豺妓、微博呀。
推薦大家去學(xué)習(xí)requests布讹、bs4來入門爬蟲琳拭,提供對(duì)應(yīng)中文學(xué)習(xí)網(wǎng)站:
https://2.python-requests.org//zh_CN/latest/
https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
其它
其它不常用的自動(dòng)化辦公庫(kù),像處理pdf描验、圖片白嘁、視音頻等,這里不做過多介紹挠乳。
如果有興趣可以在本文末留言权薯,你用過哪些逆天的python庫(kù)姑躲,解決了哪些問題?