Python 2.7 逐行比较两个文件的数据,并在另一个文件中只存储它们之间的差异
我有两个文本文件file1和file2。我试图逐行比较这两个文件,并仅打印/写入第三个文件中不匹配/不同的内容 我尝试过difflib.unified_diff,但这会给输出带来很多不必要的信息。正如所述,要求只是打印文件1中不在文件2中的文本。 下面是我尝试的代码Python 2.7 逐行比较两个文件的数据,并在另一个文件中只存储它们之间的差异,python-2.7,file,Python 2.7,File,我有两个文本文件file1和file2。我试图逐行比较这两个文件,并仅打印/写入第三个文件中不匹配/不同的内容 我尝试过difflib.unified_diff,但这会给输出带来很多不必要的信息。正如所述,要求只是打印文件1中不在文件2中的文本。 下面是我尝试的代码 def file_byline_comp(f1,f2,f3): # Read the first line from the files file1= open(f1) file2= open(f2)
def file_byline_comp(f1,f2,f3):
# Read the first line from the files
file1= open(f1)
file2= open(f2)
result_output_file= open(f3,'w')
file1_line = file1.readline()
file2_line = file2.readline()
# Initialise counter for line number
line_no = 1
# Loop if either file1 or file2 has not reached EOF
while file1_line != '' or file2_line != '':
# Strip the leading whitespaces
file1_line = file1_line.rstrip()
file2_line = file2_line.rstrip()
# Compare the lines from both file
if file1_line != file2_line:
if file2_line == '' and file1_line != '':
# print("Line-%d" % line_no, file1_line)
print("Line-%d" % line_no)
print difflib.unified_diff(file1_line, file2_line,fromfile='f1', tofile='f2',lineterm='')
result_output_file.write("Line-%d " % (line_no))
result_output_file.write(file1_line)
# otherwise output the line on file1
elif file1_line != '':
#print("Line-%d" % line_no, file1_line)
print("Line-%d" % line_no)
for line in difflib.unified_diff(file1_line, file2_line,fromfile='f1', tofile='f2',lineterm=''):
print line
result_output_file.write("Line-%d " % (line_no))
result_output_file.write(file1_line)