I have 2 csv files. I am getting the value of a cell in one csv and comparing with all in another. Below is my code:
f = open('test1.csv')
x = open('test2.csv')
csv_f = csv.reader(f)
csv_x = csv.reader(x)
for row in csv_f:
a = row[1]
b = row[2]
for nrow in csv_x:
if a in nrow[0] and b in nrow[1]:
print nrow[0]
Now the above code only prints for the first value of a and b. Subsequently, it is not going through the 2nd for loop for other values of a and b. Any idea what's the issue?
解决方案
The function
csv_x = csv.reader(x)
Returns a file object.
When you loop through it once it goes to the end.
So you can not be able to loop through it again
To overcome this problem you could use this way
f = open('test1.csv')
csv_f = csv.reader(f)
for row in csv_f:
a = row[1]
b = row[2]
csv_x = csv.reader(open('test2.csv')) # assign here
for nrow in csv_x:
if a in nrow[0] and b in nrow[1]:
print nrow[0]