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