You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py将消息写入文本文件时无法换行、内容异常问题求助

问题原因

  • 格式异常:你直接对Message对象做了字符串转换,没有提取实际的消息文本内容;同时msg.author.id和msg.created_at之间没有添加字段分隔符,导致两个字段拼接粘连。
  • 换行失败:你使用了r+读写模式打开文件,该模式默认文件指针停在文件开头,写入内容时不会自动追加到末尾,若文件原有内容长度长于新写入内容,还会出现残留字符的问题。

修正后的实现代码

@bot.event
async def on_message(message):
    # 过滤机器人自身发送的消息,避免循环写入
    if message.author.bot:
        return
    # 使用a模式追加写入,自动把内容放到文件末尾
    with open("data.txt", "a", encoding="utf-8") as n:
        # 按字段拼接,每个字段用|分隔,提前提取消息文本内容
        write_content = f"\n<{message.content}|{str(message.author)}|{str(message.author.id)}|{str(message.created_at)}>"
        n.write(write_content)

补充说明

  • 打开文件时指定encoding="utf-8",避免写入非英文字符时出现乱码
  • 若不需要保留消息两侧的<>包裹符,可自行删除拼接逻辑里的对应符号

内容的提问来源于stack exchange,提问作者Koll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:15:08