只需創建一個字典fields
所有你想要支持的領域,並使用**keywords
調用語法應用該詞典:
filename = template.format(**fields)
模板可以使用盡可能多或儘可能少的領域,因爲它需要。
演示:
>>> fields = {'foo': 'The Foo value', 'bar': 'A barren area', 'spam': 'The greatest canned meat!', 'eggs': 'scrambled or easy over?'}
>>> template = 'Please provide me with eggs, {eggs}'
>>> template.format(**fields)
'Please provide me with eggs, scrambled or easy over?'
在此示例中,模板只使用egg
場,不使用其他可用的名字,但可用於其他模板。
如果你在任何時候需要列出所有字段名,用string.Formatter()
instance解析出字段:
>>> from string import Formatter
>>> list(Formatter().parse('{foo} {bar:042d}'))
[('', 'foo', '', None), (' ', 'bar', '042d', None)]
的Formatter.parse()
method產量(literal_text, field_name, format_spec, conversion)
元組。
爲什麼需要'檢查每個可能的字段'?通常,模板(包括來自字典的格式)解析出這些字段以替換下面的一組規則。 – user2864740
因爲用戶可以使用集合中的一個或多個字段 – FBidu
也許'grep'用過的字段並替換它們? – FBidu