2024-06-09 01:21:22 发布
网友
我目前正在创建一个discord.py bot,它是用Python编写的,我需要以某种方式保存数据。我试着查看许多类型的数据库,但目前对我来说有点太难了,所以我想让它简单地读写。 我希望它能像这样保存,不仅仅是简单的写作和阅读
我在谷歌上找不到任何文档或任何东西
channelSug: - SERVER_ID_HERE: CHANNEL_ID_HERE
要读/写YAML,需要安装PyYAML库,所以使用pip install PyYAML就可以了
PyYAML
pip install PyYAML
然后你可以写一个像这样的dict包装器
import os import yaml class YAMLPersistedDict: def __init__(self, *, filename): self.data = {} self.filename = filename self.load() def load(self): if os.path.isfile(self.filename): with open(self.filename, "r") as fp: self.data = yaml.safe_load(fp) def save(self): with open(self.filename, "w") as fp: yaml.dump(self.data, fp) def __getattr__(self, key): # Pass through to dict return getattr(self.data, key) def __setitem__(self, key, value): self.data[key] = value def __getitem__(self, key): return self.data[key] def __repr__(self): return f'<{self.filename!r}: {repr(self.data)}>' d = YAMLPersistedDict(filename="./config.yaml") d["servers"] = ["foo", "bar"] d.save() d = YAMLPersistedDict(filename="./config.yaml") print(d)
请注意,每次修改后都需要调用d.save(),而并发保存(特别是因为您谈论的是异步不协调的内容)可能会破坏一切
d.save()
要读/写YAML,需要安装
PyYAML
库,所以使用pip install PyYAML
就可以了然后你可以写一个像这样的dict包装器
请注意,每次修改后都需要调用
d.save()
,而并发保存(特别是因为您谈论的是异步不协调的内容)可能会破坏一切相关问题 更多 >
编程相关推荐