Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:比较两个文件并生成一个显示差异的新文件很麻烦_Python_Comparison - Fatal编程技术网

Python:比较两个文件并生成一个显示差异的新文件很麻烦

Python:比较两个文件并生成一个显示差异的新文件很麻烦,python,comparison,Python,Comparison,我试图编写一个程序,查看两个文件,并生成一个新文件,显示哪些行是不同的。两个文件的行数相等,并且每行都有数字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

我试图编写一个程序,查看两个文件,并生成一个新文件,显示哪些行是不同的。两个文件的行数相等,并且每行都有数字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()
f1=open(“file1”、“r”)
f2=打开(“文件2”、“r”)
fileOne=f1.readlines()
fileTwo=f2.readlines()
f1.关闭()
f2.关闭()
outFile=open(“results.txt”、“w”)
x=0
对于fileOne中的i:
如果我fileTwo[x]:
outFile.write(i+“”+fileTwo[x])
打印i+“”+fileTwo[x]
x+=1
outFile.close()

尝试以下方法:

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

试着这样做:

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

谢谢你!我尝试了你的代码版本,但我很难找出哪些行是不同的,因为它只是一遍又一遍地打印“不同的行”。有没有办法也打印行号?谢谢!我尝试了你的代码版本,但我很难找出哪些行是不同的,因为它只是一遍又一遍地打印“不同的行”。有没有办法打印行号?这对于发现差异非常方便。这对于发现差异非常方便。