'模块' csv下一个没有属性

时间:2015-06-04 08:47:55

标签: python-2.7 csv attributeerror

我正在使用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如何在第二部分中可迭代,但是当传递给函数时,它不再是可迭代的,这导致了我的错误。

1 个答案:

答案 0 :(得分:0)

first_time, last_time = get_durations(csv)

您传入的是csv模块,而不是文件。