【问题标题】:Can someone tell me why this code wont work?有人能告诉我为什么这段代码不起作用吗?
【发布时间】:2021-06-23 09:24:12
【问题描述】:

所以,我在尝试执行的命令时遇到了一些问题,嗯,不是一些麻烦,而是很多麻烦,我已经尝试了 8 个小时,但它不起作用......

我试图做的是一个建议命令,基本上是有人使用 $suggest 提示命令(他们的建议在这里),然后在将其发送到 .txt 文件后,它会返回到命令中发送通道并用复选标记做出反应,但无论我使用什么代码,它都会做出反应并且不将信息发送到 .txt 文档,不做出反应或将信息发送到 .txt 文档,或者只是不做出反应并且将信息发送到 .txt 文档 正如我之前所说,我已经尝试了几个小时,但我仍然无法让它工作......

这是我使用的代码:

@client.command()
async def suggest(ctx, *, value):
    file = open("suggest.txt", "a")
    file.write(f"User {ctx.author.mention} said: {value}\n")
    file.close
    await reaction.message.add_reaction("✅")

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    您根本不调用close()(缺少括号),因此数据很可能由于缓冲而没有被刷新到文件中。

    最好使用with,不过:

    @client.command()
    async def suggest(ctx, *, value):
        with open("suggest.txt", "a") as f:
            print(f"User {ctx.author.mention} said: {value}", file=f)
        await reaction.message.add_reaction("✅")
    

    【讨论】:

      【解决方案2】:

      首先close后面需要括号,我从来没有使用reaction.message.add_reaction,只是message.add_reaction(“反应”)。 所有这些都改变了,它应该可以工作。

      @client.command()
      async def suggest(ctx, *, value):
          file = open("suggest.txt", "a")
          file.write(f"User {ctx.author.mention} said: {value}\n")
          file.close()
          await message.add_reaction("✅")
      

      【讨论】:

      • 这应该是ctx.message 而不是message,否则message 没有定义
      【解决方案3】:

      我不敢相信,一直都是因为我在 message.add_reaction 之前没有(ctx)

      但感谢您的帮助!

      【讨论】:

        猜你喜欢
        • 2019-02-15
        • 2015-09-20
        • 1970-01-01
        • 2021-05-22
        • 2014-04-19
        • 1970-01-01
        • 2022-12-04
        • 2015-09-12
        • 1970-01-01
        相关资源
        最近更新 更多