0

2 つのファイルを見て、どの行が異なるかを示す新しいファイルを作成するプログラムを作成しようとしています。両方のファイルの行数は同じで、各行に 1 または -1 のいずれかの数字が含まれています。次に例を示します。

-1
1
1
-1

ただし、これまでに作成したコードは、すべての行が異なると考えており、それらすべてを新しいドキュメントに書き込みます。

f1 = open("file1", "r")
f2 = open("file2", "r")

fileOne = f1.readlines()
fileTwo = f2.readlines()

f1.close()
f2.close()

outFile = open("results.txt", "w")
x = 0

for i in fileOne:
   if i != fileTwo[x]:
      outFile.write(i+" <> "+fileTwo[x])
      print i+" <> "+fileTwo[x]
   x += 1

outFile.close()
4

1 に答える 1

4

このようなことを試してください:

with open("file1") as f1,open("file2") as f2:
    for x,y in zip(f1,f2):
        if x !=y :
           print " dissimilar lines "

zip()両方のファイルから個々の行を取得し、それらを比較できます。

例:

In [12]: a=[1,2,3]

In [13]: b=[4,2,6]

In [14]: for i,(x,y) in enumerate(zip(a,b)):
    if x !=y :
        print "line :{0} ==>  comparing {1} and {2}".format(i,x,y)

line :0 ==>  comparing 1 and 4
line :2 ==>  comparing 3 and 6
于 2013-01-09T23:25:16.387 に答える