Python之word文件替換字串(也可以用於短模板套用)
阿新 • • 發佈:2020-11-13
Python之word文件替換字串(也可以用於短模板套用),程式碼如下:
1 ''' 2 #word模板套用1:建立模板,適合比較短的文件 3 ''' 4 5 #匯入所需庫 6 from docx import Document 7 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 8 from docx.shared import Pt 9 from docx.oxml.ns import qn 10 11 #開始建立文件 12 document = Document() 13 #設定文件的初始字型 14 document.styles['Normal'].font.name = '黑體' 15 #設定文件的中文初始字型 16 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'黑體') 17 18 #建立函式來批量新增內容 19 def add_context(context): 20 #函式體開始 21 #新建段落 22 p = document.add_paragraph() 23 #設定段落對齊格式 24 p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 25#向段落新增內容 26 r = p.add_run(str(context)) 27 #因為文件的樣式在程式碼開始的時候就設定了,這裡只設置字型段落文字的字型大小就好了,有需要可以新增 28 r.font.size = Pt(16) 29 #設定段前段後距離 30 p.space_after = Pt(5) 31 p.space_before = Pt(5) 32 #指定好要替換的內容 33 change = '哈士奇' 34 #開始新增內容 35 add_context('漢皇重色思傾國,御宇多年求不得。楊家有%s初長成,養在深閨人未識。' % change) #將'女'替換成‘哈士奇' 36 add_context('天生麗質難自棄,一朝選在君王側。回眸一笑百媚生,六宮粉黛無顏色。') 37 add_context('春寒賜浴華清池,溫泉水滑洗凝脂。侍兒扶起嬌無力,始是新承恩澤時。') 38 add_context('雲鬢花顏金步搖,芙蓉帳暖度春宵。春宵苦短日高起,從此君王不早朝。') 39 add_context('承歡侍宴無閒暇,春從春遊夜專夜。後宮佳麗三千人,三千寵愛在一身。') 40 add_context('金屋妝成嬌侍夜,玉樓宴罷醉和春。姊妹弟兄皆列土,可憐光彩生門戶。') 41 add_context('遂令天下父母心,不重生男重生%s。驪宮高處入青雲,仙樂風飄處處聞。' % change) #將'女'替換成‘哈士奇' 42 add_context('緩歌慢舞凝絲竹,盡日君王看不足。漁陽鼙鼓動地來,驚破霓裳羽衣曲。') 43 44 #儲存文件 45 document.save('D:/路徑/替換%s操作展示.docx' % (change))
上面是單一替換,下面替換多個:
1 ''' 2 #word模板套用1:建立模板,適合比較短的文件 3 ''' 4 5 #匯入所需庫 6 from docx import Document 7 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 8 from docx.shared import Pt 9 from docx.oxml.ns import qn 10 11 #建立一個要替換的列表 12 dog_list = ['哈士奇','阿拉斯加','薩摩'] 13 #開始迴圈列表 14 for change in dog_list: 15 #開始建立文件 16 document = Document() 17 #設定文件的初始字型 18 document.styles['Normal'].font.name = '黑體' 19 #設定文件的中文初始字型 20 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'黑體') 21 22 #建立函式來批量新增內容 23 def add_context(context): 24 #函式體開始 25 #新建段落 26 p = document.add_paragraph() 27 #設定段落對齊格式 28 p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 29 #向段落新增內容 30 r = p.add_run(str(context)) 31 #因為文件的樣式在程式碼開始的時候就設定了,這裡只設置字型段落文字的字型大小就好了,有需要可以新增 32 r.font.size = Pt(16) 33 #設定段前段後距離 34 p.space_after = Pt(5) 35 p.space_before = Pt(5) 36 37 #開始新增內容 38 add_context('漢皇重色思傾國,御宇多年求不得。楊家有%s初長成,養在深閨人未識。' % change) #將'女'替換成‘哈士奇' 39 add_context('天生麗質難自棄,一朝選在君王側。回眸一笑百媚生,六宮粉黛無顏色。') 40 add_context('春寒賜浴華清池,溫泉水滑洗凝脂。侍兒扶起嬌無力,始是新承恩澤時。') 41 add_context('雲鬢花顏金步搖,芙蓉帳暖度春宵。春宵苦短日高起,從此君王不早朝。') 42 add_context('承歡侍宴無閒暇,春從春遊夜專夜。後宮佳麗三千人,三千寵愛在一身。') 43 add_context('金屋妝成嬌侍夜,玉樓宴罷醉和春。姊妹弟兄皆列土,可憐光彩生門戶。') 44 add_context('遂令天下父母心,不重生男重生%s。驪宮高處入青雲,仙樂風飄處處聞。' % change) #將'女'替換成‘哈士奇' 45 add_context('緩歌慢舞凝絲竹,盡日君王看不足。漁陽鼙鼓動地來,驚破霓裳羽衣曲。') 46 47 #儲存文件 48 document.save('D:/路徑/替換%s操作展示.docx' % (change))