python中format方法输出{}的应用
步骤/目录:
无本文首发于个人博客https://lisper517.top/index.php/archives/4232/,转载请注明出处。
本文的原文写作日期为2020年9月5日。
本文的目的如标题所示。
看《笨方法学python第三版》的时候习题46,想写一个python脚本自动在当前目录下创建项目骨架。
其中需要将一些内容写入一个文件,需要用到format方法,但出现了一个问题。简化版的问题代码如下:
project_name = 'test'
setup_config = '''
config = {
'description': '{0}',
'author': 'Author Name',
}
'''.format(project_name)
print(setup_config)运行时出现异常:
KeyError: "\n 'description'"
KeyError是查找字典中的键时键不存在返回的错误。作为替代方法,我暂时先用了%格式化输出:
project_name = 'test'
setup_config = '''
config = {
'description': '%s',
'author': 'Author Name',
}
''' % project_name
print(setup_config)可以正常运行 。
我想到了在format中用{{}}来输出{}的问题,多试几次,发现:
project_name = 'test'
setup_config = '''
config = {{
'description': '{0}',
'author': 'Author Name',
}}
'''.format(project_name)
print(setup_config)就可以正常运行,但第一段的代码中{0}是高亮显示的。
我猜测可能是format方法中,误以为:
{
'description': '{0}{到:这之间的内容是键,: 后面的是指定格式,但我没有给出键,因为想使用0作为键。由于我使用的vs code高亮了{0},可能解释器和编辑器的理解不一样。
总结:要用format方法输出{},不论出现在字符串的哪里,都应该使用双括号来替代{},才可以正确识别。