久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Python模板

2023-10-13 208

一、模板類

模板(Template)類是 Python 標(biāo)準(zhǔn)庫(kù) string 模塊中的一個(gè)通用的字符串模板類,它提供了一種簡(jiǎn)單易用的格式化字符串的方式。通過占位符的方式,用戶可以在不更改應(yīng)用邏輯的情況下定制自己的應(yīng)用。

Pytho?n格式化輸出》操作是通過占位符實(shí)現(xiàn)的,占位符由 $ 加上合法的 Python 標(biāo)識(shí)符(只能包含字母、數(shù)字和下劃線)構(gòu)成。一旦使用花括號(hào)將占位符括起來,就可以在后面直接跟上更多的字母和數(shù)字而無需空格分割。$$ 將被轉(zhuǎn)義成單個(gè)字符 $:

>>>from string import Template
>>>t = Template('${village}folk send $$10 to $cause.')
>>>t.substitute(village='Nottingham', cause='the ditch fund')
'Nottinghamfolk send $10 to the ditch fund.'

如果在字典或關(guān)鍵字參數(shù)中未提供某個(gè)占位符的值,那么 substitute() 方法將拋出 KeyError。對(duì)于郵件合并類型的應(yīng)用,用戶提供的數(shù)據(jù)有可能是不完整的,此時(shí)使用 safe_substitute() 方法更加合適 —— 如果數(shù)據(jù)缺失,它會(huì)直接將占位符原樣保留。

>>>t = Template('Return the $item to $owner.')
>>>d = dict(item='unladen swallow')
>>>t.substitute(d)
Traceback (most recent call last):
...
KeyError: 'owner'
>>>t.safe_substitute(d)
'Return the unladen swallow to $owner.'

二、自定義分隔符

模板 的子類可以自定義分隔符,這樣可以使得字符串模板更加靈活和通用。例如,某個(gè)照片瀏覽器的批量重命名功能采用了百分號(hào)作為日期、照片序號(hào)和照片格式的占位符,這時(shí)就可以定義一個(gè)繼承自 模板 類的子類,并指定其分隔符為百分號(hào):

>>>import time, os.path
>>>photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']
>>>class BatchRename(Template):
... delimiter = '%'
...
>>>fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')
Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f
>>>t = BatchRename(fmt)
>>>date = time.strftime('%d%b%y')
>>>for i, filename in enumerate(photofiles):
... base, ext = os.path.splitext(filename)
... newname = t.substitute(d=date, n=i, f=ext)
... print('{0} --> {1}'.format(filename, newname))
img_1074.jpg --> Ashley_0.jpg
img_1076.jpg --> Ashley_1.jpg
img_1077.jpg --> Ashley_2.jpg

Template 類的另一個(gè)重要的應(yīng)用是將程序邏輯與多樣的格式化輸出細(xì)節(jié)分離開來,這使得對(duì)不同類型的文件(如 XML 文件、純文本報(bào)表和 HTML 網(wǎng)絡(luò)報(bào)表)使用自定義模板成為可能。

  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。