尝试write
到包含变量的文件,但这会返回错误:
template = """1st header line
second header line
There are people in rooms
and the %s
"""
with open('test','w') as myfile:
myfile.write(template.format()) % (variable)
答案 0 :(得分:3)
.format
method期望您使用{}
样式而不是%s
来模拟要填充在字符串中的空白。它还希望插值值作为参数给出。
template = """1st header line
second header line
There are people in rooms
and the {}
"""
myfile.write(template.format(variable))
答案 1 :(得分:1)
给定的字符串文字是printf-style string。使用str % arg
:
with open('test', 'w') as myfile:
myfile.write(template % variable)
要使用str.format
,您应该使用占位符{}
或{0}
代替%s
。
答案 2 :(得分:1)
myfile.write(template.format())
不返回您使用%
运算符连接的任何内容
你可以完美地使用%s
。问题是你的括号不匹配,括号如)
应该在myfile.write(template.format() % (variable))
之后的变量之后。但由于template.format()
冗余,因此可以忽略它。因此,正确的方式是
myfile.write(template % (variable))
注意: - 字符串中任何字符串为空format()
且没有{}
的字符串都会返回字符串