gpt4 book ai didi

python - 更新文件中的字典

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:48 25 4
gpt4 key购买 nike

我正在为我所属的服务器制作一个 Python Discord 机器人,所有者要求的功能之一是返回用户年龄的命令。我已经设法将它添加到文件中,然后读取该文件并获得良好的结果。但是每当我尝试向字典中添加更多用户时,它只会将新字典添加到文件中并将所有内容搞砸。

users_age = {}

@bot.command(pass_context=True)
async def addAge(ctx, member : discord.Member, age : int):
users_age[str(member.mention)] = age
fh = open('age.txt', 'a')
fh.write(str(users_age))
await bot.say("File written successfully!")
fh.close()

@bot.command(pass_context=True)
async def Age(ctx, member : discord.Member):
users_age = eval(open('age.txt', 'r').read())
await bot.say(users_age[str(member.mention)])

最佳答案

您可以使用 built-in shelve module对于一个简单的数据库,您不必手动管理。

从 API 的角度来看,它看起来像一本字典,但实际上是由磁盘上的一个文件支持的。

import shelve


@bot.command(pass_context=True)
async def addAge(ctx, member: discord.Member, age: int):
with shelve.open("ages") as age_db:
age_db[str(member.mention)] = age
await bot.say("File written successfully!")


@bot.command(pass_context=True)
async def Age(ctx, member: discord.Member):
with shelve.open("ages") as age_db:
age = age_db.get(str(member.mention))
if age is not None:
await bot.say(age)
else:
await bot.say("I don't know.")

关于python - 更新文件中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55106434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com