【发布时间】:2020-02-03 11:02:38
【问题描述】:
我有一堆文件,在{my_var}、{some_var} 等表单内有许多标签。我希望打开它们,并用我读过的my_var 和some_var 替换它们蟒蛇。
为了做这些事情我一直在使用inspect.cleandoc():
import inspect, markdown
my_var='this'
some_var='that'
something=inspect.cleandoc(f'''
All my vars are {some_var} and {my_var}. This is all.
''')
print(something)
#All my vars are that and this. This is all.
但我想通过读取文件 file1.md 和 file2.md 来做到这一点
### file1.md
There are some strings such as {my_var} and {some_var}.
Done.
### file2.md
Here there are also some vars: {some_var}, {my_var}. Also done.
这是 Python 代码:
import inspect, markdown
my_var='this'
some_var='that'
def filein(file):
with open(file, 'r') as file:
data = file.read()
return data
for filei in ['file1.md','file2.md']:
fin=filein(file)
pre=inspect.cleandoc(f'''{fin}''')
但是,上面没有评估 filei 中的字符串并将它们替换为 this (my_var) 和 that (some_var),而是将它们保留为字符串 {my_var} 和 @987654339 @。
我做错了什么?
【问题讨论】:
-
inspect.cleandoc应该做什么? -
这能回答你的问题吗? Replace string within file contents
-
@bereal appologies,有人接受了排除我序言的编辑。我已经编辑了我的输入。
-
@ZarakiKenpachi 不是真的,因为我想避免为每个变量替换定义一个替换:在这个工作案例中,我建议使用 2 个变量,所以很容易。但在我的真实案例中,我将许多变量导入 python,这意味着我明确指定了每个变量替换。
-
@usr2564301 抱歉,我正在尝试修复该函数,因为它会由于缩进而产生“未定义的数据变量”错误。下次我会尽量小心一点。
标签: python