Python执行f.read()报TypeError参数类型不匹配错误如何解决?
问题根因
Python 内置文件对象的 read() 方法仅支持传入整数类型的读取长度或者 None,不传参数时默认读取整个文件的全部内容。
你在代码中给 read() 传入了文件对象 f 本身,该对象的类型为 _io.TextIOWrapper,完全不符合参数要求,因此直接触发类型错误。
另外你当前使用的 w+ 打开模式存在额外逻辑问题:w+ 模式在打开文件时会直接清空文件原有内容,如果你只是需要读取已有文件的内容,不要使用该模式,改用只读模式 r 即可。如果你确实需要读写同时进行,写入完成后需要调用 f.seek(0) 把文件指针移动到文件开头,才能读到写入的内容,否则直接读取会得到空值。
修正后的代码示例
# 基础写法:读取已有文件全部内容 f = open(r"C:\Users\raghu\3D Objects\myDJZ.py","r") content = f.read() # 后续处理content的逻辑 f.close() # 更推荐的写法:用上下文管理器自动处理文件关闭,避免资源泄漏 with open(r"C:\Users\raghu\3D Objects\myDJZ.py","r") as f: content = f.read() # 后续处理content的逻辑
内容的提问来源于stack exchange,提问作者Morph
相关产品推荐
相关产品推荐

