VS Code运行Python读取txt文件报错及输出非预期内容问题
问题原因及解决方案
1 为什么之前会报FileNotFoundError
VS Code默认运行Python脚本时的工作目录是编辑器打开的项目根目录,而非当前运行脚本所在的文件夹,当name.txt和脚本同目录但和项目根目录不同时,就会找不到文件。你开启「Execute In File Dir」设置后,运行时会自动将工作目录切换到脚本所在文件夹,因此文件可以被正常找到。
2 为什么输出的是TextIOWrapper对象而非文件内容
open() 函数的返回值是文件流对象(_io.TextIOWrapper),它只是程序和磁盘文件之间的交互通道,本身并不存储文件的实际内容,你直接打印这个对象只会输出对象的类型描述信息,而非文件内容。
要获取文件内容,必须调用文件对象的读取方法,同时为了避免资源泄露,建议使用with上下文管理器自动完成文件关闭操作。
3 修正后的代码示例
基础修改版(适配原有写法)
# 打开文件获取文件对象 s = open("name.txt", encoding='utf-8') # 调用read()方法读取文件全部内容 content = s.read() print("Your name is", content) # 手动关闭文件释放资源 s.close()
推荐写法(with上下文管理器)
不需要手动写关闭逻辑,文件操作完成后会自动释放资源,更加稳妥:
with open("name.txt", 'r', encoding='utf-8') as f: content = f.read() print("Your name is", content)
补充说明
- 如果文件内容有多行,你只需要第一行的内容,可以把
read()替换为readline() - 建议显式指定
encoding参数,避免不同操作系统默认编码不一致导致的乱码问题
内容的提问来源于stack exchange,提问作者KishuInu
相关产品推荐
相关产品推荐

