【发布时间】:2021-05-15 15:46:16
【问题描述】:
我有一个大/小问题。我将文件中的全部内容加载到字符串中。然后我想添加字符串。
我的示例文件:
Titel
Name: {name_string}
Firstname: {firstname_string}
...
一种方法是.format(name_string=name_string, firstname_string=firstname_string)
但是,当我有一个大文本文件并且它破坏了整个代码(.format() 行将是 50 行)时,这需要很长时间。
我尝试使用.format(),其中没有任何内容。但这不起作用。
有没有办法用 f-strings 做到这一点?还是更清洁的方式?
【问题讨论】:
-
不,您只能在实际 Python 代码中使用 f 字符串。也许你应该寻找一个模板引擎。
-
如果要自动插入所有变量,可以使用
.format(**locals())。如果不是,请进一步说明问题。 -
如果您要使用的所有变量都已经在全局或本地范围内,您可以将
globals()或locals()的字典解包到格式的参数中:template.format(**globals()) -
这似乎不是格式化字符串的问题,而是拥有 50 个独立但相关的变量的问题。您可能会考虑重构以使用字典来存储此数据。
-
@Manuservus 那么您在模板中引用的名称之一在本地范围内丢失,您需要定义它。这就是为什么我建议不要只使用本地变量,而是使用自己构建的字典,然后解压缩到格式函数中:
template.format(**mydict)
标签: python python-3.x string text-files