我正在使用csv迭代器来浏览csv文件,该文件包含与时间相关的数据。我确定csv文件是正确的。我在python 3.x中使用Jupyter,iPython笔记本
当我尝试使用.next()方法迭代第一行时,我有一个AttributeError:'模块'对象没有属性' 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如何在第二部分中可迭代,但是当传递给函数时,它不再是可迭代的,这导致了我的错误。
答案 0 :(得分:0)
first_time, last_time = get_durations(csv)
您传入的是csv模块,而不是文件。