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

Python3.10读取txt文件返回_io.TextIOWrapper对象问题解决

Python读取txt文件无内容输出问题解答

问题复现

尝试读取txt文件时编写的初始代码:

file = open("LESEN.txt","r")
print(file)

运行后未得到预期文件内容,控制台返回信息:

<built-in method read of _io.TextIOWrapper object at 0x0000024B969DA4D0>

问题原因

  1. 核心逻辑错误:open()函数执行后返回的是文件操作对象,是Python封装的用于和系统文件交互的接口实例,本身不是文件存储的文本内容。直接打印这个对象,只会输出对象的类型、内存地址这类元信息,不可能得到文件内的文本。
  2. 从你贴的控制台输出判断,你实际运行的代码大概率漏写了read方法的调用括号:如果是直接print(file),输出格式应为<_io.TextIOWrapper name='LESEN.txt' mode='r' encoding='xxx'>,不会提到read方法;只有写成print(file.read)时,才会打印出read方法本身的对象信息,和你贴的返回结果匹配。
  3. 不存在旧版本Python支持直接打印文件对象输出内容的逻辑,属于记忆偏差。

正确写法

基础修正版

手动打开文件后调用read()方法读取内容,操作完成后必须手动关闭文件释放资源:

# 建议显式指定编码,避免不同系统默认编码不一致导致乱码
file = open("LESEN.txt", "r", encoding="utf-8")
# 加括号调用read()方法,拿到文件内容
content = file.read()
print(content)
# 必须手动关闭文件
file.close()

推荐写法(上下文管理器)

使用with关键字创建上下文管理器,代码块执行结束后会自动关闭文件,不需要手动调用close(),能避免忘记关文件导致的资源泄漏问题:

with open("LESEN.txt", "r", encoding="utf-8") as file:
    # 一次性读全部内容打印
    content = file.read()
    print(content)

如果文件体积较大,不建议用read()一次性加载全部内容,可以逐行迭代读取,减少内存占用:

with open("LESEN.txt", "r", encoding="utf-8") as file:
    for line in file:
        # strip()用于去除行尾的换行符
        print(line.strip())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:03:21