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

Python开发Discord机器人读取txt文件仅返回空末行问题求助

问题根因

  • 执行jokes.readlines()操作后,文件读取指针已经移动到文件末尾,后续再调用jokes.read()只能读取到空内容,两种读取方式选其一即可,不需要同时调用
  • with上下文管理器会在代码块执行结束后自动关闭文件,额外加的jokes.close()属于冗余代码,无需保留
  • 现有代码仅执行了读取逻辑,没有将删除指定行后的内容回写到文件中,无法实现删除笑话的功能

修正后的完整功能代码

@client.command()
async def clearjoke(ctx, l=1):
    joke_path = working_directory / 'txt files/Jokes.txt'
    # 读取所有笑话行内容
    with open(joke_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    # 校验行号合法性
    if l < 1 or l > len(lines):
        await ctx.send(f"错误:行号{l}不存在,当前共有{len(lines)}条笑话")
        return
    
    # 删除指定行(用户输入行号从1开始,列表索引从0开始,因此要减1)
    del lines[l-1]
    
    # 将修改后的内容回写文件
    with open(joke_path, 'w', encoding='utf-8') as f:
        f.writelines(lines)
    
    await ctx.send(f'已删除第{l}行的笑话!')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:45:06