繁体   English   中英

用户设置 [discord.py]

[英]User settings [discord.py]

我一直在为一个不和谐的机器人编写这段代码,它允许你打开和关闭被动模式。 当您启用它时,它会将您的用户 ID 添加到被动模式用户列表中,并在禁用时将其删除。 当我运行这个命令时,什么也没有发生,文本文件也没有被覆盖。 有谁知道它有什么问题?

@client.command()
async def passive(ctx, value: bool):
  user_id = str(ctx.author.id)
  if value:
    with open('passive.txt', 'w') as a:
      if user_id in a.read():
        await ctx.channel.send('You are already in passive mode!')
      else:
        a.write(f'{user_id}\n')
        await ctx.channel.send('Passive mode successfully enabled!')
      a.close()
  else:
    with open('passive.txt', 'r') as r:
      lines = r.readlines()
      r.close()
    with open('passive.txt', 'w') as d:
      for line in lines:
        if line.strip('\n') != (user_id):
          d.write(line)
          await ctx.channel.send('No more passive mode for you')
        else: 
          await ctx.channel.send('You are already not in passive mode!')
      d.close()

这不是一个真正的 discord.py 问题。 首先,您应该学习阅读 IDE 或调试器中的 err 消息。

with open('passive.txt', 'w') as a:更改为with open('passive.txt', 'w+') as a:

'w'不能同时读写,但'w+'可以

我用 w+ 测试了你的代码,它适用于文件 I/O,但不适用于切换。

我建议您先测试文本 IO ,如果有效,请将其放入您的机器人中。 也许您应该简化您的问题并将其发布为 python 问题(没有 discord.py 的部分)

IO模式

这是 I/O 文档https://docs.python.org/3/library/io.html#text-io

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM