我很想创建一个 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} 是 {greeting}'
所以我对这里使用 .format()
非常有信心没有意义。
此操作的目的是允许分析人员更新和维护 SQL 代码,同时让 python 脚本提取正确版本的脚本并使用各种变量运行它。
最佳答案
嗯,问题很明显是我对 .format()
知识的懒惰,因为 f 字符串看起来容易得多。解决方案非常简单:
使用上面相同的greeting.sql
文件,
py_name = 'Bob'
print(greeting.format(name = py_name))
做工精美
关于Python - 文件中文本字符串的字符串格式化或字符串插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65943717/