入门干货:Python操作Word文件经验分享
導(dǎo)讀:Microsoft Word在當(dāng)前使用中是占有巨大優(yōu)勢(shì)的文字處理器,這使得Word專用的檔案格式Word 文件(.docx)成為事實(shí)上最通用的標(biāo)準(zhǔn)。
在日常工作中,有些時(shí)候會(huì)有很多重復(fù)的工作,比如批量的替換、報(bào)名表、合同、邀請(qǐng)函等很多格式一樣的文件,要對(duì)這些文件進(jìn)行讀寫與匯總,程序員的智慧就是把重復(fù)的工作簡單化,下面介紹一些經(jīng)驗(yàn)匯總,請(qǐng)讀者注意,程序?qū)W習(xí)最重要的是思想。
作者:老A
如需轉(zhuǎn)載請(qǐng)聯(lián)系大數(shù)據(jù)(ID:hzdashuju)
01 模塊的安裝和導(dǎo)入
python-docx模塊安裝需要在cmd命令行中輸入:
02 讀取已存在的一個(gè)事先有內(nèi)容的測試文件test1.docx代碼
file=docx.Document("/test/test1.docx")
print("段落數(shù):"+str(len(file.paragraphs)))?
for?para?in?file.paragraphs:
????print(para.text)
for?i?in?range(len(file.paragraphs)):
print("第"+str(i)+"段的內(nèi)容是:"+file.paragraphs[i].text)
03 文檔中內(nèi)容批量替換
首先程序是讀取文件夾下文件名稱,獲取絕對(duì)路徑,按絕對(duì)路徑讀取文件,把讀取的文件中指定內(nèi)容進(jìn)行替換,最后把替換后的內(nèi)容保存到另外的文件夾中:
xmldir='D:/test?/test'
xmllist=os.listdir(xmldir)
for?xml?in?xmllist:
????if?'.txt?'?in?txt?
??????fo=open(xmldir+'/'+'new_{}'.format(txt),'w')
??????print('{}'.format(txt))
??????fi=open(xmldir+'/'+'{}'.format(txt),'r')
??????content=fi.readlines()
??????for?line?in?content:
?????????line=line.replace('替換前的內(nèi)容','替換后的內(nèi)容')
?????????fo.write(line)
??????fo.close()
??????print('替換完成')
04 利用docxtpl將指定數(shù)據(jù)
本經(jīng)驗(yàn)是從test/exce.csv文件中讀完并寫入到test/合同例子.docx中保存輸出。
from?docxtpl?import?DocxTemplate
tpl?=?DocxTemplate('test/合同例子.docx')
context?=?{
???"name":?name,
???"department":?department,
???"position":?position,
???"time":?time,
???"id":?id_card,
???"addr":?addr,}
tpl.render(context)
tpl.save("{}的合同.docx".format(name))
05 將所有受邀者的公司名和代表姓名填入路徑為test/test_name_list.xlsx的表格
在需要填字的地方打上“***”,然后Python來填字,最后保存為test/邀請(qǐng)函.docx,下面代碼段為讀入信息,然后寫入word文件中。
wb=load_workbook('teset/test_name_list.xlsx')
ws=wb['name']
names=[]
for?row?in?range(2,ws.max_row+1):
????company=ws["A"+str(row)].value
????name=ws["B"+str(row)].value
????names.append("?{}?{}?".format(company,name))
doc=docx.Document('test/邀請(qǐng)函.docx')
for?name?in?names:
????doc.paragraphs[1].runs[2].text=name
doc.save('test/邀請(qǐng)函_{}.docx'.format(name))
word是坐在電腦前百分之九十的人都會(huì)用的辦公軟件,word東西少還好說,手動(dòng)打開那樣存入表格也簡單,但是當(dāng)數(shù)據(jù)達(dá)到幾萬幾十萬、幾百萬大數(shù)據(jù)級(jí)那就恐怖了,如果全靠手動(dòng),那么至少要連上一個(gè)月的班了,不能停息的那種!
每天重復(fù)一樣的操作,恐怖嗎?想想都可怕,這時(shí)候就是真正體現(xiàn)技術(shù)方面的能力了,很多東西都可以自動(dòng)實(shí)現(xiàn),如果手動(dòng)的話,真不知道搞到猴年馬月,耗時(shí)沒有什么意義!
學(xué)習(xí)永不停牌,今天一小步明天一大步!
關(guān)于作者:老A,項(xiàng)目管理師,專業(yè)興趣研究方向:大數(shù)據(jù)、計(jì)算機(jī)軟件、通信工程。個(gè)人業(yè)余愛好是研究無人機(jī)制作,銀元鑒賞與收藏。
本文為「大數(shù)據(jù)」內(nèi)容合伙人之「鑒書小分隊(duì)」活動(dòng)讀書筆記,由大數(shù)據(jù)粉絲原創(chuàng),轉(zhuǎn)載請(qǐng)與我們?nèi)〉寐?lián)系。
「大數(shù)據(jù)」內(nèi)容合伙人之「鑒書小分隊(duì)」上線啦!
最近,你都在讀什么書?有哪些心得體會(huì)想要跟大家分享?
數(shù)據(jù)叔最近搞了個(gè)大事——聯(lián)合優(yōu)質(zhì)圖書出版商機(jī)械工業(yè)出版社華章公司發(fā)起鑒書活動(dòng)。
簡單說就是:你可以免費(fèi)讀新書,你可以免費(fèi)讀新書的同時(shí),順手碼一篇讀書筆記就行。詳情請(qǐng)?jiān)诖髷?shù)據(jù)公眾號(hào)后臺(tái)對(duì)話框回復(fù)合伙人查看。
延伸閱讀《利用Python進(jìn)行數(shù)據(jù)分析(原書第2版)》
點(diǎn)擊上圖了解及購買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:togo-maruko
推薦語:Python數(shù)據(jù)分析經(jīng)典暢銷書全新升級(jí),第1版中文版累計(jì)銷售100000冊(cè)。針對(duì)Python 3.6進(jìn)行全面修訂和更新,涵蓋新版的pandas、NumPy、IPython和Jupyter。
有話要說?
Q:?Python還能搞定哪些重復(fù)性的工作?
歡迎留言與大家分享
猜你想看??
想用Python爬小姐姐圖片?那你得先搞定分布式進(jìn)程
深度學(xué)習(xí)高能干貨:手把手教你搭建MXNet框架
教你用OpenCV實(shí)現(xiàn)機(jī)器學(xué)習(xí)最簡單的k-NN算法
41款實(shí)用工具,數(shù)據(jù)獲取、清洗、建模、可視化都有了
更多精彩??
在公眾號(hào)對(duì)話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?報(bào)告?|?讀書?|?書單?|?干貨?
大數(shù)據(jù)?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?區(qū)塊鏈
機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)
1024?|?段子?|?數(shù)學(xué)?|?高考
據(jù)統(tǒng)計(jì),99%的大咖都完成了這個(gè)神操作
??
覺得不錯(cuò),請(qǐng)把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請(qǐng)聯(lián)系:baiyu@hzbook.com
更多精彩,請(qǐng)?jiān)诤笈_(tái)點(diǎn)擊“歷史文章”查看
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的入门干货:Python操作Word文件经验分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真正零基础Python入门:手把手教你从
- 下一篇: 在哪个国家生活幸福?24秒看完联合国10