在 python 中使用可选的 "replacement fields" 进行格式化

formatting with optional "replacement fields" in python

有这样一段代码:

text = "{first}, {second}, {etc}"

print(text.format(first="1", etc="34.."))

当它被执行时,我(预期)得到一个 KeyError.
我的问题是:
是否可以使格式化不影响 second,而只保留 "{second}"
也就是说,就我而言,我想得到:1, {second}, 34..

假设我事先不知道要格式化哪个字段,那怎么办?

我决定创建一个库来解决这个问题:pyformatting
这是 pyformatting 问题的解决方案:

>>> from pyformatting import optional_format
>>> text = "{first}, {second}, {etc}"
>>> optional_format(text, first="1", etc="34..")
'1, {second}, 34..'

唯一的问题是pyformatting不支持python 2. pyformatting支持python 3.1+ 如果我看到任何关于需要 2.7 支持的反馈,我想我会添加该支持。