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

如何用Python的with语句同时读写文件?代码读取输出为空

解决文件读写时read()返回空的问题

问题原因

当你完成文件写入操作后,文件的文件指针会停留在文件的末尾位置。此时调用read()方法,会从当前指针位置开始读取,自然读不到任何内容——这和你使用w+/r+/a+模式无关,本质是指针位置的问题。

修复方案

在调用read()之前,使用seek(0)方法将文件指针移回文件开头即可。修改后的代码如下:

def student():
    with open("students.txt","w+") as my_file:
        for i in range(20):
            user = input("Enter your name : ")
            my_file.write(f"{user}\n")
        # 将文件指针移到文件开头
        my_file.seek(0)
        print(my_file.read())

student()

不同模式的注意事项

  • w+:会先清空目标文件的原有内容,再进行读写操作,如果不需要清空原文件,建议用a+(追加模式)
  • a+:默认指针在文件末尾,写入后同样需要调用seek(0)才能读取全部内容
  • r+:要求文件必须存在,写入时会从当前指针位置覆盖内容,使用前确保指针位置符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:42:02