Python替代旧字符串格式

时间:2013-10-14 12:02:21

标签: python

我只是尝试在包含许多随机花括号的文本上使用Python的.format()。它不起作用,因为.format()试图替换单个花括号内的所有内容。在做了一些阅读之后,似乎我有三个糟糕的选择:

  1. 将所有随机括号加倍 - 这看起来很难看
  2. 使用旧的字符串格式% - 这似乎已经过时了
  3. 导入模板引擎 - 这似乎有点矫枉过正
  4. 什么是最佳选择?有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

这是一个简单的方法:

>>> my_string = "Here come the braces : {a{b}c}d{e}f"
>>> additional_content = " : {}"
>>> additional_content = additional_content.format(42)
>>> my_string += additional_content
>>> my_string
'Here come the braces : {a{b}c}d{e}f : 42'

此外,您可以创建一个功能来加倍大括号:

def double_brace(string):
    string = string.replace('{','{{')
    string = string.replace('}','}}')
    return string

my_string = "Here come the braces : {a{b}c}d{e}f"
my_string = double_brace(my_string)
my_string += " : {}"
my_string = my_string.format(42)
print(my_string)

输出:

>>> Here come the braces : {a{b}c}d{e}f : 42