我正在尝试格式化字符串以传递给os.popen()
,因此我可以在awk
中进行一些解析。我使用的是python 2.7.10。当我尝试格式化字符串时,python似乎认为我试图将新的键/值对分配给字典。
>>> path="xyz"
>>> string="awk {}".format(path) #<--- This works as expected!
>>> string
'awk xyz'
>>>
>>> string="awk 'BEGIN{FS=\"\t\"}{print $1}' {}" #<--- This works, but not what I want
>>> string
'awk \'BEGIN{FS="\t"}{print $1}\' {}'
>>>
>>> string="awk 'BEGIN{FS=\"\t\"}{print $1}' {}".format(path) #<--- This fails b/c Python thinks I'm trying to do something with dictionaries?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'FS="\t"'
如果string
不打算进行格式化,那么如何格式化{}
?
答案 0 :(得分:1)
https://docs.python.org/2/library/string.html#format-string-syntax
如果您需要在文字文本中包含大括号字符,则可以通过加倍来转义它:
{{
和}}
。