13

可能重复:
如何在 python 字符串中打印文字“{}”字符并在其上使用 .format?

基本上,我想使用 .format(),如下所示:

my_string = '{{0}:{1}}'.format('hello', 'bonjour')

并让它匹配:

my_string = '{hello:bonjour}' #this is a string with literal curly brackets

但是,第一段代码给了我一个错误。

花括号很重要,因为我使用 Python 通过基于文本的命令与软件进行通信。我无法控制 fosoftware 期望什么样的格式,所以我最终整理所有格式是至关重要的。它在字符串周围使用大括号来确保字符串中的空格被解释为单个字符串,而不是多个参数——就像您通常在文件路径中使用引号所做的那样。

我目前正在使用旧方法:

my_string = '{%s:%s}' % ('hello', 'bonjour')

这当然有效,但 .format() 似乎更容易阅读,当我在一个字符串中发送包含五个或更多变量的命令时,可读性就成为一个重要问题。

谢谢!

4

1 回答 1

28

这是新样式:

>>> '{{{0}:{1}}}'.format('hello', 'bonjour')
'{hello:bonjour}'

但我认为转义有点难以阅读,所以我更喜欢切换回旧样式以避免转义:

>>> '{%s:%s}' % ('hello', 'bonjour')
'{hello:bonjour}'
于 2011-12-01T00:08:31.730 回答