我正在尝试使用带有字符串的“.format”在for循环中插入值。这就是我想要做的事情:
with open('test.txt', 'w') as fout:
for element in range (0, 5):
line1 = 'Icon_{}.NO = Icon_Generic;'.format(element)
fout.write(line1)
当我这样做时,它会窒息。我最好的猜测是它不喜欢{}(“_ {}”)旁边的下划线。它是否正确?对此有一个很好的解决方法吗?
我使用过这样的东西并且有效:
line1 = Icon_Generic.NO = Icon_%02d.NO;\n' % element
但是,如果我想使用“%element”做大型多行代码,则效果不佳。
提前致谢!
编辑:我最好能告诉我使用的是Python 3.3
这是我得到的错误(使用IDLE 3.3.2 shell):
>>> with open('p_text.txt', 'w') as fout:
for element in range(0, 5):
template = """if (!Icon_{0}.notFirstScan) {""".format(element)
fout.write(template)
fout.write('\n\n')
input('press enter to exit')
Traceback (most recent call last):
File "<pyshell#13>", line 3, in <module>
template = """if (!Icon_{0}.notFirstScan) {""".format(element)
ValueError: Single '{' encountered in format string
答案 0 :(得分:2)
这是给你问题的最后一个开头括号,如错误信息所示:“单'{'
遇到”。如果你需要在格式化的字符串中使用文字花括号,你必须通过加倍('{{'
)来表示它们是文字的,从而将它们转义:
template = """if (!Icon_{0}.notFirstScan) {{""".format(element)
^ escape the literal '{'
请注意,这也适用于关闭大括号(}
)!
>>> print('{{{0}}}'.format('text within literal braces'))
{text within literal braces}