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。非常感谢你们,我希望我能接受不止一个答案:)