Discord.py如何将不含'hi'的未知频道消息保存到txt文件
代码修改实现说明
- 原有代码存在两个可优化点:
- 缺少对消息不包含
hi的逻辑判断 - 原有写文件用的覆盖模式
w会清空历史内容,改为追加模式a才能持续存储新的未知消息
- 缺少对消息不包含
- 使用前请把代码里的
Path/To/Your/File.txt替换为你本地实际的文本文件路径
async def on_message(self, message): # 过滤机器人自己发送的消息 if message.author == self.user: return msg_content = message.content.lower() if msg_content == 'hi': await message.channel.send('hello') # 匹配不包含hi的非空消息 elif 'hi' not in msg_content and msg_content.strip() != '': # 用追加模式a打开文件,不会覆盖原有内容 with open("Path/To/Your/File.txt", "a", encoding="utf-8") as f: # 写入格式可按需调整,示例存发送时间+发送人+消息内容 write_content = f"{message.created_at} | {message.author} : {message.content}\n" f.write(write_content)
- 此处使用
with语法打开文件不需要手动调用close(),会自动处理文件关闭逻辑,避免资源泄漏 - 新增
encoding="utf-8"参数避免写入特殊字符时报错 - 额外增加了空消息过滤规则,避免无意义的空内容写入文件
内容的提问来源于stack exchange,提问作者Pika Chu
相关产品推荐
相关产品推荐

