我想创建一个python脚本,循环遍历文件夹中的一堆文件,并用脚本中的变量替换一些格式化的文本。
对于(非常简化的)示例,一个文件夹包含两个文件:
greeting.sql
与文本
select greeting
from greeting_list
where name = {name}
和
credentials.sql
与文本
select credentials
from credentials_list
where name = {name}
python脚本然后可以拉入这些文本文件,并插入脚本,将文本中的{name}
变量替换为预定义变量,如name = 'Bob'
。
fd = open('greeting.sql', 'r')
greeting = fd.read()
fd.close()
names = ['Jeff','Melanie','Nitin','Satya','Serena']
[run_sql(greeting.format(n)) for n in names]
我通常使用插入字符串,如f'Greeting for {name} is {greeting}'
,所以我非常有信心我在这里使用.format()
没有意义。
这个操作的要点是允许分析人员更新和维护SQL代码,同时让python脚本拉入正确版本的脚本并使用各种变量运行它。
好吧,问题是非常明确的,我是懒惰与我的.format()
知识,因为f字符串似乎更容易。解决方案很简单:
对于上面相同的greeting.sql
文件,
py_name = 'Bob'
print(greeting.format(name = py_name))
是漂亮的