python csv.read在第二次迭代中失败
我的代码如下所示:python csv.read在第二次迭代中失败,python,parsing,csv,Python,Parsing,Csv,我的代码如下所示: for filename in files: with open(filename, 'rb') as csvfile: csvreader = csv.reader(csvfile, delimiter=';') values=list(csvreader) dosomething() 我有大约10个文件,我想处理,它的工作没有问题的第一个文件。但是当python试图开始处理第二个文件时,它会说 Traceback (most recent cal
for filename in files:
with open(filename, 'rb') as csvfile:
csvreader = csv.reader(csvfile, delimiter=';')
values=list(csvreader)
dosomething()
我有大约10个文件,我想处理,它的工作没有问题的第一个文件。但是当python试图开始处理第二个文件时,它会说
Traceback (most recent call last):
File "plot.py", line 20, in <module>
values=list(csvreader)
TypeError: 'list' object is not callable
回溯(最近一次呼叫最后一次):
文件“plot.py”,第20行,在
值=列表(csvreader)
TypeError:“列表”对象不可调用
有人知道为什么这行不通吗 您在某个地方使用了一个名为
list
的(全局,如果问题出现在这里)变量来保存列表的实例。那是个坏主意。每次使用时都会查找名称list
,并且该变量优先于实际的list
类型,这是您想要的(即,为了从csvreader
结果构建一个列表)。您使用过的某个地方(全局,如果问题出现在这里)名为list
的变量,用于保存列表的实例。那是个坏主意。每次使用时都会查找名称list
,并且该变量优先于实际的list
类型,这是您想要的(即,为了从csvreader
结果构建列表).错误消息表明列表正在您提供的代码块之外的某个地方重新定义。例如:
>>> list = list()
>>> list()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>列表=列表()
>>>列表()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
检查是否没有将列表反弹到代码中其他位置的其他对象。错误消息表明列表正在您提供的代码块之外的某个位置重新定义。例如:
>>> list = list()
>>> list()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>列表=列表()
>>>列表()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
检查您是否没有将列表反弹到代码中其他位置的某个对象。由于您没有发布实际代码,我不能确定,但在处理第一个文件期间,您似乎正在分配给一个名为var的列表,隐藏了实际的内置列表函数。由于您没有发布实际代码,我不能确定,但在处理第一个文件的过程中,您似乎正在分配给一个名为list的变量,隐藏了实际的内置list函数。我打赌在您的代码中有一个名为
list
的变量。是的,就是它。对于list:foo()中的list,我认为这样定义的变量是私有的,但我还是在3小时前开始编写python。非常感谢你们,我希望我能接受不止一个答案:)我打赌在你们的代码中有一个叫做list
的变量。对于list:foo()中的list,我认为这样定义的变量是私有的,但我还是在3小时前开始编写python。非常感谢你们,我希望我能接受不止一个答案:)