Rael Wert
Rael Wert

Reputation: 1

while iterating if statement wont evaluate

this little snippet of code is my attempt to pull multiple unique values out of rows in a CSV. the CSV looks something like this in the header:

descr1, fee part1, fee part2, descr2, fee part1, fee part2,

with the descr columns having many unique names in a single column. I want to take these unique fee names and make a new header out of them. to do this I decided to start by getting all the different descr columns names, so that when I start pulling data from the actual rows I can check to see if that row has a fee amount or one of the fee names I need. There are probably a lot of things wrong with this code, but I am a beginner. I really just want to know why my first if statement is never triggered when the l in fin does equal a comma, I know it must at some point as it writes a comma to my row string. thanks!

row = ''
header = ''
columnames = ''
cc = ''
#fout = open(","w")
fin = open ("raw data.csv","rb")

for l in fin:
    if ',' == l:
        if 'start of cust data' not in row:
            if 'descr' in row:
                columnames = columnames + ' ' + row
                row = ''
            else:
                pass
        else:
            pass
    else:
        row = row+l
        print(columnames)

print(columnames)

Upvotes: 0

Views: 53

Answers (1)

rmunn
rmunn

Reputation: 36678

When you iterate over a file, you get lines, not characters -- and they have the newline character, \n, at the end. Your if ',' == l: statement will never succeed because even if you had a line with only a single comma in it, the value of l would be ",\n".

I suggest using the csv module: you'll get much better results than trying to do this by hand like you're doing.

Upvotes: 2

Related Questions