|
发表于 2023-11-7 09:47:16
|
显示全部楼层
在处理INI文件时,可以使用 configparser 模块来读取和修改配置文件。对于重复的key,可以使用 remove_option() 方法来删除前面的key,保留后面的key。
在你的代码中,你已经使用了 remove_option() 方法来删除重复的key,但是你需要将其放在正确的位置。在遍历 target_dict 之前,你应该先读取配置文件并创建 config 对象。然后,在遍历 target_dict 时,检查是否存在重复的key,并在存在时删除它。最后,将更新后的配置文件写回到文件中。
下面是修正后的代码:
- import configparser
- def refresh_data(model_dict, model_file):
- target_dict = model_dict
- target_file = model_file
- for filename in target_file:
- config = configparser.ConfigParser()
- config.optionxform = lambda option: option
- config.read(filename)
- for dict_key in target_dict.keys():
- file_name, ini_key = dict_key.split(':')
- if config.has_option(file_name, ini_key):
- config.remove_option(file_name, ini_key)
- config.set(file_name, ini_key, str(target_dict[dict_key]))
- with open(filename, 'w') as cfgfile:
- config.write(cfgfile)
复制代码
希望这可以帮助到你!如果你有任何其他问题,请随时问我。 |
|