CSV读取报错:TypeError: '_csv.reader' object is not callable 求助
解决TypeError: '_csv.reader' object is not callable的问题
Hey,这个错误我碰过好多次了,核心原因是你意外覆盖了csv.reader这个内置函数,把它变成了一个_csv.reader对象,导致后续无法再调用它来创建新的读取器。
先看你贴出来的这段代码,本身是完全正确的:
import csv with open('movehubqualityoflife.csv', 'r') as csv_file: csv_reader = csv.reader(csv_file) for line in csv_reader: print(line)
那问题肯定出在你脚本的其他部分,或者你之前在交互式环境(比如Jupyter、Python终端)里运行过的代码中。比如你可能不小心写了类似这样的错误代码:
# 错误示例:把csv.reader函数覆盖成了实例对象 csv.reader = csv.reader(csv_file)
当你用csv.reader这个函数名来存储读取器对象后,再调用csv.reader(csv_file)时,Python就会告诉你这个对象是不可调用的——毕竟它已经不是函数了。
给你几个具体的排查和修复步骤:
- 全局搜索你的整个脚本文件,查找所有给
csv.reader赋值的语句,把这些语句中的变量名改成其他合法名称(比如my_reader、csv_data_reader)。 - 如果你是在交互式环境中运行代码,可能之前的会话已经污染了
csv模块的属性,重启环境后再运行你的脚本试试。 - 确认没有其他导入
csv模块的代码片段修改了它的内置属性。
只要保证csv.reader始终是Python内置的那个函数,而不是你创建的读取器对象,你的代码就能正常输出CSV内容了。
内容的提问来源于stack exchange,提问作者1234
相关产品推荐
相关产品推荐

