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

如何向临时文件写入文本?读取临时文件仅返回空列表如何解决

问题根因

执行tmp.readlines()得到空列表的核心原因是文件指针位置错误:完成所有写入操作后,文件读写指针停在文件末尾,此时直接读取相当于从末尾向后读取,自然只能拿到空结果。

修复方法

写入完成后、读取前调用tmp.seek(0)将指针复位到文件开头即可。同时你代码中两次额外拼接\n会导致最终输出出现多余空行,可同步调整。

修复后代码如下:

import tempfile

with open("sentences.txt") as file:
    with tempfile.NamedTemporaryFile(mode="w+") as tmp:
        for line in file:
            if line.rstrip() != "I like cars.":
                # 原行本身自带换行符,不需要额外拼接
                tmp.write(line)
        # 指针复位到文件开头
        tmp.seek(0)
        with open("sentences.txt", "a") as f:
            f.write(tmp.read())

补充注意事项

Windows环境下使用NamedTemporaryFile需要额外添加delete=False参数,避免系统自动锁定临时文件导致读写失败,使用完成后可手动删除临时文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:15:04