如何以格式化字符串打开文件?

时间:2019-05-13 16:42:29

标签: python python-3.x string file

我有一系列文件,其中包含许多以{myvar}形式定义的变量。例如

file.txt

This is {myvar}.

我想打开它们,并让变量正常替换:

with open('path/to/file.txt', 'r') as file:
    myfile = file.read().replace('\n', '')


myvar='myself.'
print(f"{myfile}")

应输出:

This is myself.

如何将文件作为格式化字符串打开?还是将字符串转换为格式化字符串?

2 个答案:

答案 0 :(得分:1)

如果变量在调用中是本地变量,则这似乎起作用,如果它是全局变量,请使用**globals()。您还可以将值放在以变量名作为键的字典中。

myvar = 'myself'
newline = '\n'  # Avoids SyntaxError: f-string expr cannot include a backslash

with open('unformatted.txt', 'r') as file:
    myfile = f"{file.read().replace(newline, '')}".format(**locals())

print(myfile)

答案 1 :(得分:1)

你快到了。

假设存在“这是{myvar}”。在file.txt中。

编码:

with open('path/to/file.txt', 'r') as file:
    myfile = file.read().replace('\n', '')

myvar='myself'

print(myfile.format(myvar=myvar))

任何纯文本格式的字符串都可以作为变量从文本文件中导入。然后可以正常操作strings变量。

在这种情况下,键为“ {var}”。因此,只要定义了变量“ varx”,就可以轻松使用“ .format(var = varx)”。

输出:

  

这是我自己。

如果要导入具有CSS样式的html模板并替换某些内容,则可以使用“ {{”和“}}”来转义“ {”和“}”。

示例2 在文件中:

  

这是{{var}}的{myvar}。

输出:

  

这是我自己的{var}。