3

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

  1. 将所有这些随机大括号加倍 - 这看起来很难看
  2. 使用旧的字符串格式%- 这似乎已经过时了
  3. 导入模板引擎 - 这似乎有点过头了

什么是最好的选择?有更好的选择吗?

4

1 回答 1

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
于 2013-10-14T12:18:32.633 回答