Сравнение данных двух файлов построчно и сохранение только разницы между ними в другом файле - PullRequest
1 голос
/ 14 июня 2019

У меня есть 2 текстовых файла 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)
    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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...