TypeError: ‘_io.TextIOWrapper’ 对象不可调用

类型错误:“ _ io.TextIOWrapper”对象不可调用

TypeError: ‘_io.TextIOWrapper’ object is not callable

Python:“TypeError: ‘ _ io.TextIOWrapper’ object is not callable”发生在我们尝试调用文件对象时,就好像它是一个函数一样。要解决该错误,请确保函数和变量名称与文件对象的访问属性之间没有任何冲突。

typeerror io textiowrapper 对象不可调用

下面是错误如何发生的示例。

主程序
with open('example.txt', 'r', encoding='utf-8') as f: # ⛔️ TypeError: '_io.TextIOWrapper' object is not callable f()

我们试图调用_io.TextIOWrapper对象 is 如果它是一个函数并得到错误。

如果您尝试写入文件,请使用write()文件对象上的方法。

主程序
file_name = 'example.txt' with open(file_name, 'w', encoding='utf-8') as my_file: my_file.write('first line' + '\n') my_file.write('second line' + '\n') my_file.write('third line' + '\n')

如果您需要从文件中读取,请使用简单的for循环。

主程序
with open('example.txt', 'r', encoding='utf-8') as f: lines = f.readlines() print(lines) print(lines[0]) for line in lines: print(line)
确保您没有与共享相同名称的变量和函数发生任何冲突。

开始调试的一个好方法是print(dir(your_object))查看 a 具有哪些属性_io.TextIOWrapper

这是打印 a 的属性的示例_io.TextIOWrapper

主程序
with open('example.txt', 'r', encoding='utf-8') as f: # [... 'close', 'closed', 'detach', 'encoding', 'errors', # 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', # 'name', 'newlines', 'read', 'readable', 'readline', # 'write', 'write_through', 'writelines' ...] print(dir(f))

如果将一个类传递给
dir()函数,它会返回该类属性的名称列表,并递归地返回其基类的属性。

您可能打算使用点表示法访问属性,而不是将其
_io.TextIOWrapper作为函数调用。

结论

Python:“TypeError: ‘ _ io.TextIOWrapper’ object is not callable”发生在我们尝试调用文件对象时,就好像它是一个函数一样。要解决该错误,请确保函数和变量名称与文件对象的访问属性之间没有任何冲突。