关于python:如何使用.format()打印字符串,并在替换的字符串周围打印文字大括号

How can I print a string using .format(), and print literal curly brackets around my replaced string

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How can I print a literal “{}” characters in python string and also use .format on it?

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

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

让它匹配:

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

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

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

我目前使用的是旧方法:

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

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

谢谢!


这里是纽约的风格: P / < >

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

但我的思考,escaping也有点难读,所以我prefer到开关,后到老年的风格来避免escaping: P / < >

1
2
>>> '{%s:%s}' % ('hello', 'bonjour')
'{hello:bonjour}'