有人能告诉我为什么这段代码不起作用吗?

问题描述

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

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

这是我使用的代码

@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("✅")

解决方法

您根本不调用 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("✅")
,

首先关闭后需要括号,我从来没有使用过reaction.message.add_reaction,只是message.add_reaction("thereaction")。 所有这些都改变了,它应该可以工作了。

@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("✅")
,

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

不过谢谢你的帮助!