Skip to content Skip to sidebar Skip to footer

Python - How To Loop Through Lines Of Multiple Files

I have 2 files: 'a.txt' and 'b.txt' where I want to match lines between them. The files contain the following: 1 2 3 4 5 6 7 8 9 10 To match the lines, I'm doing the following

Solution 1:

You need to reset the file pointer to the start of the file for b.txt each time you attempt to loop through it, otherwise you've reached the end.

The easiest way to do this is with file.seek(0) as shown below:

a = open("a.txt","r") 
b = open("b.txt","r")
for al in a:
    al = al.split()
    val_a = al[0]

    b.seek(0)

    for bl in b:
        bl = bl.split()
        val_b = bl[0]
        print val_a, val_b

Solution 2:

You can fetch b to a list of lines with readlines(), and then you can iterate over it again and again:

a = open("a.txt","r") 
b = open("b.txt","r").readlines()
for al in a:
    al = al.split()
    val_a = al[0]
    for bl in b:
        bl = bl.split()
        val_b = bl[0]
        print val_a, val_b

Solution 3:

try this :

a = open("a.txt","r")
b = open("b.txt","r")
for i,j in zip(a,b):
    print (i.split()[0])
    print (j.split()[0])

Explanation:

1)zip file will openboth files simultanously
2)for loop will loop through line by line (i=one line in a-file, j=one line in b-file)
3)i.split()[0] will give first word/element of line

Solution 4:

Convert b as a list else first iteration through b will consume the file.

blist= list(b)

Then the inner loop

For bl in blist:...

Post a Comment for "Python - How To Loop Through Lines Of Multiple Files"