Theo Sandell
Theo Sandell

Reputation: 147

Python for loop not running

Im writing a simple command line program involving id's, i want to make it so that every time i run a function it should add a value to a CSV file. I have made a function that i thought worked, but apparently not. One of my for loops is not running correctly ;( Here is my code:

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()

Sorry for my bad English btw.

Upvotes: 1

Views: 1286

Answers (1)

Ken Y-N
Ken Y-N

Reputation: 15009

You open the file with:

file = open(ID_FILE_PATH, 'wb+')

According to the documentation:

note that 'w+' truncates the file

You truncate the file, so no wonder there is nothing to read in! Use rb+ instead.

Upvotes: 2

Related Questions