2016-07-08 66 views
1

我写涉及ID的一个简单的命令行程序,我希望把它使我每次运行一个功能时,应该将值添加到一个CSV文件。我做了一个我认为可行的功能,但显然不是。我的一个for循环的不正确运行;(这里是我的代码:的Python for循环没有运行

def addId(id): 
    file = open(ID_FILE_PATH, 'wb+') 
    read = csv.reader(file) 
    write = csv.writer(file) 

    existingRows = [] 
    existingRows.append(id) 

    for rows in read: # This does not run 
     print rows 
     if len(rows) > 0 and rows[0] not in existingRows: 
      existingRows.append(rows[0]) 

    for rows in existingRows: # This runs 
     write.writerow([rows]) 

    file.close() 

对不起,我英文不好BTW

+0

问题是最有可能是你打开既是csv.reader和相同的文件对象上csv.writer。看到一个类似的问题[这里](http://stackoverflow.com/questions/14978575/writing-reading-the-same-csv-file-in-python)。 –

+1

此外,你不应该命名变量'file',因为这是一个内置的数据类型 – xgord

回答

2

您打开该文件:

file = open(ID_FILE_PATH, 'wb+') 

According to the documentation

注意'w +'截断文件

您截断文件,所以难怪有什么在阅读!改为使用rb+

+0

工作,非常感谢你! –