Python:文本文件中的占位符变量

时间:2020-07-26 15:49:33

标签: python string file

我有一个名为help.txt的文本文件,它将被读取并打印出内容。我需要文件包含变量占位符,用变量占位符替换变量值,例如:'I have 3 variables: {one}, {two} and {three}'

如果这只是在python文件中硬编码的字符串,我可以将其视为f字符串,但是我不确定如何在外部文件中执行此操作。

我希望文本在另一个文件中,以便在需要时可以轻松更改它。只有我可以访问代码和文本文件。

3 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,则可以在读文件时检查这些占位符,然后将其替换为变量。假设“ FileContents”是您用于读取文件的字符串,而“ variable”是替换它的变量,只需使用FileContents.replace("{one}", variable)

答案 1 :(得分:0)

f字符串是str.format的有效语法糖,并且对命名空间进行了一些精美的处理。您可以对文件内容使用str.format来达到相同的效果。与str.replace相比,这样做的好处是您可以使用字符串格式迷你语言的全部功能。

我建议将所有合法的替代词存储到词典中,而不要尝试使用globalslocals。这不仅更安全,而且更易于维护,因为您可以通过以下方式轻松地从文件中加载变量:

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()