'module' csv 下一个没有属性
'module' csv has no attribute next
我正在使用 csv 迭代器遍历 csv 文件,其中包含与时间相关的数据。我确定 csv 文件是正确的。我在 python 3.x
中使用 Jupyter,iPython notebook
当我尝试使用 .next() 方法迭代第一行时,出现 AttributeError: 'module' object has no attribute 'next'.
我的代码分为两部分,一部分包含函数和导入,一部分调用它们。我遇到问题的功能是:
def get_durations(csvfile):
try:
csvfile = iter(csvfile)
except TypeError, te:
print csvfile, 'is not iterable'
print "data is", repr(csvfile)
first_time = csvfile.next()[5]
first_time = (first_time.replace(" ", ""));
for row in csvfile:
last_time = row[5]
last_time = (last_time.replace(" ", ""))
first_time = datetime.datetime.strptime(first_time, "%H:%M:%S")
last_time = datetime.datetime.strptime(last_time, "%H:%M:%S")
return first_time.replace(second = 0), last_time.replace(second = 0)
我在这里调用函数:
for el_mousefile in mousefiles:
os.chdir(el_mousefile)
print "data is", repr(csvfile)
csvfile = csv.reader(open("mouse.csv", "rU"), delimiter=';', quoting=csv.QUOTE_NONE)
print "data is", repr(csvfile)
try:
csvfile = iter(csvfile)
except TypeError, te:
print csvfile, 'is not iterable'
first_time, last_time = get_durations(csv)
我在尝试 运行 程序时得到这个输出:
data is <_csv.reader object at 0x000000000A388D08>
data is <_csv.reader object at 0x000000000A388948>
module 'csv' from 'C:\Users\**\AppData\Local\Continuum\Anaconda\lib\csv.pyc' is not iterable
data is module 'csv' from 'C:\Users\**\AppData\Local\Continuum\Anaconda\lib\csv.pyc'
96------>first_time = csvfile.next()[5]
97 first_time = (first_time.replace(" ", ""));
98 for row in csvfile:
AttributeError: 'module' object has no attribute 'next'
我不明白我的 csv 如何在第二部分中可迭代,但是当传递给函数时,它不再是可迭代的,这就是我的错误的原因。
first_time, last_time = get_durations(csv)
您传递的是 csv 模块,而不是文件。
我正在使用 csv 迭代器遍历 csv 文件,其中包含与时间相关的数据。我确定 csv 文件是正确的。我在 python 3.x
中使用 Jupyter,iPython notebook当我尝试使用 .next() 方法迭代第一行时,出现 AttributeError: 'module' object has no attribute 'next'.
我的代码分为两部分,一部分包含函数和导入,一部分调用它们。我遇到问题的功能是:
def get_durations(csvfile):
try:
csvfile = iter(csvfile)
except TypeError, te:
print csvfile, 'is not iterable'
print "data is", repr(csvfile)
first_time = csvfile.next()[5]
first_time = (first_time.replace(" ", ""));
for row in csvfile:
last_time = row[5]
last_time = (last_time.replace(" ", ""))
first_time = datetime.datetime.strptime(first_time, "%H:%M:%S")
last_time = datetime.datetime.strptime(last_time, "%H:%M:%S")
return first_time.replace(second = 0), last_time.replace(second = 0)
我在这里调用函数:
for el_mousefile in mousefiles:
os.chdir(el_mousefile)
print "data is", repr(csvfile)
csvfile = csv.reader(open("mouse.csv", "rU"), delimiter=';', quoting=csv.QUOTE_NONE)
print "data is", repr(csvfile)
try:
csvfile = iter(csvfile)
except TypeError, te:
print csvfile, 'is not iterable'
first_time, last_time = get_durations(csv)
我在尝试 运行 程序时得到这个输出:
data is <_csv.reader object at 0x000000000A388D08>
data is <_csv.reader object at 0x000000000A388948>
module 'csv' from 'C:\Users\**\AppData\Local\Continuum\Anaconda\lib\csv.pyc' is not iterable
data is module 'csv' from 'C:\Users\**\AppData\Local\Continuum\Anaconda\lib\csv.pyc'
96------>first_time = csvfile.next()[5]
97 first_time = (first_time.replace(" ", ""));
98 for row in csvfile:
AttributeError: 'module' object has no attribute 'next'
我不明白我的 csv 如何在第二部分中可迭代,但是当传递给函数时,它不再是可迭代的,这就是我的错误的原因。
first_time, last_time = get_durations(csv)
您传递的是 csv 模块,而不是文件。