我有一系列文件,其中包含许多以{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.
如何将文件作为格式化字符串打开?还是将字符串转换为格式化字符串?
答案 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}。