我有一个名为help.txt
的文本文件,它将被读取并打印出内容。我需要文件包含变量占位符,用变量占位符替换变量值,例如:'I have 3 variables: {one}, {two} and {three}'
如果这只是在python文件中硬编码的字符串,我可以将其视为f字符串,但是我不确定如何在外部文件中执行此操作。
我希望文本在另一个文件中,以便在需要时可以轻松更改它。只有我可以访问代码和文本文件。
答案 0 :(得分:1)
如果我对您的理解正确,则可以在读文件时检查这些占位符,然后将其替换为变量。假设“ FileContents”是您用于读取文件的字符串,而“ variable”是替换它的变量,只需使用FileContents.replace("{one}", variable)
答案 1 :(得分:0)
str.format
的有效语法糖,并且对命名空间进行了一些精美的处理。您可以对文件内容使用str.format
来达到相同的效果。与str.replace
相比,这样做的好处是您可以使用字符串格式迷你语言的全部功能。
我建议将所有合法的替代词存储到词典中,而不要尝试使用globals
或locals
。这不仅更安全,而且更易于维护,因为您可以通过以下方式轻松地从文件中加载变量:
variables = {
'one': 1,
'two': 'b',
'three': ...,
}
现在打印文件很简单:
with open('help.txt') as f:
for line in f:
print(line.format(**variables), end= '')
答案 2 :(得分:-1)
您可以编写一个函数,该函数可以完全写入文件:
filename =“ help.txt”
v1 ='variable1'
v2 ='variable2'
v3 ='variable3'
文件=打开(文件名,“ w”)
file.write(“我有3个变量:%s,%s和%s'%(v1,v2,v3))
file.close()