Python中模塊string.py詳解
一、用法
字符串常量:
import string print(string.ascii_lowercase) print(string.ascii_uppercase) print(string.ascii_letters) print(string.digits) print(string.hexdigits) print(string.octdigits) print(string.punctuation) print(string.printable)
結(jié)果
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 0123456789abcdefABCDEF 01234567 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,- ./:;<=>?@[\]^_`{|}~
二、Template類:
其實,Template類,可以和格式化字符串的用法還有字符串對象的format()
方法做對比,可以幫助更好地理解。首先,新建一個python文件:string_template.py
,
然后在里面寫入以下內(nèi)容:
import string values = {'var': 'foo'} t = string.Template(""" Variable : $var Escape : $$ Variable in text: ${var}iable """) print('TEMPLATE:', t.substitute(values)) s = """ Variable : %(var)s Escape : %% Variable in text: %(var)siable """ print('INTERPOLATION:', s % values) s = """ Variable : {var} Escape : {{}} Variable in text: {var}iable """ print('FORMAT:', s.format(**values))
然后,在python命令行中輸入:
$ python string_template.py
結(jié)果
TEMPLATE: Variable : foo Escape : $ Variable in text: fooiable INTERPOLATION: Variable : foo Escape : % Variable in text: fooiable FORMAT: Variable : foo Escape : {}
可以看到三者之間都可以起到對字符串里進行格式化的效果。只是三者的修飾符不一樣。Template類好的一點就是其可以通過繼承類,實例化后自定義其修飾符,并且也可以對變量的名字格式進行正則表達式的定義。
如string_template_advanced.py示例:
import string class MyTemplate(string.Template): delimiter = '%' idpattern = '[a-z]+_[a-z]+' template_text = ''' Delimiter : %% Replaced : %with_underscore Igonred : %notunderscored ''' d = { 'with_underscore': 'replaced', 'notunderscored': 'not replaced', } t = MyTemplate(template_text) print('Modified ID pattern:') print(t.safe_substitute(d))
首先,解釋下上面python文件。里面定義了一個類MyTemplate,繼承了string的Template類,然后,對其兩個域進行重載: Delimiter為修飾符,現(xiàn)在指定為了‘%',而不是之前的‘$'。 接著,idpattern是對變量的格式指定。
結(jié)果
$ python string_template_advanced.py Modified ID pattern: Delimiter : % Replaced : replaced Igonred : %notunderscored
為什么notunderscored沒有被替換呢?原因是我們在類定義的時候,idpattern里指定要出現(xiàn)下劃線'_', 而該變量名并沒有下劃線,故替代不了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Python把對應格式的csv文件轉(zhuǎn)換成字典類型存儲腳本的方法
今天小編就為大家分享一篇Python把對應格式的csv文件轉(zhuǎn)換成字典類型存儲腳本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python高階函數(shù)與函數(shù)式編程概念及使用實例探究
這篇文章主要為大家介紹了Python高階函數(shù)與函數(shù)式編程概念及使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12調(diào)整Jupyter notebook的啟動目錄操作
這篇文章主要介紹了調(diào)整Jupyter notebook的啟動目錄操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Django ORM判斷查詢結(jié)果是否為空,判斷django中的orm為空實例
這篇文章主要介紹了Django ORM判斷查詢結(jié)果是否為空,判斷django中的orm為空實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07