Python脚本读取config.ini时如何替换配置中的{today}变量?
解决config.ini中{today}变量替换为实际日期的问题
问题场景
配置文件config.ini内容:
[DHR]
key1 = "\path1..."
key2 = "\path2..."
key3 = "\path3\file-{today}.xlsx"
脚本已获取当日日期:
from datetime import date today = date.today().strftime('%y%m%d')
但读取配置后,{today}未被替换,需将路径转为\\path3\file-240709.xlsx这类格式。
三种实用解决方法
方法1:直接字符串替换
读取配置值后,用replace()方法替换变量,简单直接:
import configparser from datetime import date today = date.today().strftime('%y%m%d') # 读取配置文件 config = configparser.ConfigParser() config.read('config.ini') # 替换变量 target_path = config['DHR']['key3'].replace('{today}', today) print(target_path)
方法2:使用str.format()
利用字符串格式化方法,适合多变量场景扩展:
import configparser from datetime import date today = date.today().strftime('%y%m%d') config = configparser.ConfigParser() config.read('config.ini') target_path = config['DHR']['key3'].format(today=today) print(target_path)
方法3:使用string.Template(规范的模板替换)
如果后续有更多变量需求,用Template更严谨,避免格式化冲突:
import configparser from datetime import date from string import Template today = date.today().strftime('%y%m%d') config = configparser.ConfigParser() config.read('config.ini') # 初始化模板并替换变量 path_template = Template(config['DHR']['key3']) target_path = path_template.substitute(today=today) print(target_path)
注意事项
- 确保
config.ini中的路径转义正确,读取后是合法的字符串; - 如果配置中有多个动态变量,方法2和方法3的扩展性更强。
内容的提问来源于stack exchange,提问作者iBeMeltin
相关产品推荐
相关产品推荐

