2015-06-04 34 views
0

我正在使用csv迭代器來瀏覽包含與時間相關的數據的csv文件。我相信csv文件是正確的。我在python 3.x中使用Jupyter,iPython筆記本'module'csv沒有下一個屬性

當我嘗試使用.next()方法迭代第一行時,我有一個AttributeError:'module'對象沒有'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

閱讀如何使用'csv'模塊:https://docs.python.org/3.4/library/csv.html(請務必在某處使用'csv.reader') - 並請縮進代碼正確。 –

+0

以及我的代碼正確縮進,但@Ethan福曼是正確的,我的錯誤是,我通過csv而不是csvfile ..所以我的帖子實際上並不真正使用。 – vbvx

回答

0
first_time, last_time = get_durations(csv) 

您傳遞的是csv模塊,而不是文件。

相關問題