I am attempting to index specific characters to their own variable, and I am only able to do this for 1 character.
with open(fileName) as f:
count1 = sum(l[0] == '1' for l in f)
count2 = sum(l[0] == '2' for l in f)
print(count1)
print(count2)
This is my output
5 0
According to the values in the csv file, it should be:
5 4
I should mention, when I change the value from '1' to '2' in the first variable, it does give me 4, for some reason I cannot do both though.
CodePudding user response:
Well, once you've iterated over f
once, f
is exhausted. That is, reading from it will return nothing.
There are basically 2 ways to fix this:
1: open the file twice
with open(fileName) as f:
count1 = sum(l[0] == '1' for l in f)
with open(fileName) as f:
count2 = sum(l[0] == '2' for l in f)
2: read the file into memory and use that
with open(fileName) as f:
lines = f.readlines()
count1 = sum(l[0] == '1' for l in lines)
count2 = sum(l[0] == '2' for l in lines)
Which of the two you use is up to you.
(code is untested. might contain typos)