# 配置文件服务 import pathlib import toml import typing class ConfigFile: def __init__(self, path: str): self.path = pathlib.Path(path) if not self.path.exists(): self.path.touch() self.data = dict() self._load() def _load(self): """从文件加载配置数据""" with open(self.path, 'r') as f: try: self.data = toml.load(f) except toml.TomlDecodeError: self.data = {} def modify(self, key: str, value: typing.Any): """修改配置值并保存""" self.data[key] = value self.save() def save(self, path: typing.Union[str, pathlib.Path] = ""): """保存配置到文件""" save_path = pathlib.Path(path) if path else self.path with open(save_path, 'w') as f: toml.dump(self.data, f) def get(self, key: str, default: typing.Any = None) -> typing.Any: """获取配置值,如果不存在返回默认值""" return self.data.get(key, default)