python 文件模板Template

當有一個很大的文件檔,內容幾乎都是相同,只是其中某些變數要取代掉的時候

例如一個很大的XML文件,每次的內容幾乎都一樣,只是有一些傳送對象

時間、ID、敘述的部分可能不一樣的時候,這時候使用正規的xml就顯得很麻煩

這時候就很適合使用Template將XML中這幾個內容進行替換。

首先先建立一個範例的文件檔sample.xml,其中要更換的內容則使用${XX}作為標記


?xml version="1.0" encoding="utf-8" ?>               
<catalog>                                                           
    <product>
        <pname>${PNAME}</pname>                       
        <price currency="NT">${PRICE}</price>
        <mark />                                                     
    </product>
</catalog> 

這裡的pname就是產品名稱,price就是產品價格,接著我們進行替換


from string import Template
with open('sample.xml') as fr:
    data = fr.read()                     #讀入檔案內容
data = Template(data)               #將內容當作範本
data = data.safe_substitute(PNAME='IPHONE 12', PRICE='30000')     #進行替換
print(data)

這時候就會看到以下的內容


<?xml version="1.0" encoding="utf-8"?>
<catalog>
    <product>
        <pname>IPHONE 12</pname>
        <price currency="NT">30000</price>
        <mark />
    </product>
</catalog>