Сравнивая содержимое двух файлов, не сортируя их - PullRequest
0 голосов
/ 28 апреля 2018

test1.txt имеет содержание, как показано ниже:

Hi, how are you ?
It's already late.
My name is Sayan.

test2.txt имеет содержание, как показано ниже:

My name is Sayan.
It's already late.
Hi, how are you ?

В моем сценарии оба файла одинакового содержания.

Я хочу создать скрипт (в основном без использования sort, comm, cmp, diff), который будет сравнивать эти два файла, test1.txt и test2.txt, по содержанию и давать результат :

File Comparison status - Success 

или, если содержимое отличается,

File Comparison status - Failed  [ check in result.txt ] 

где result.txt будет содержать этот дополнительный или отсутствующий или измененный контент.

Скрипт может быть в Bash или / и в Python. Как я могу это сделать?

1 Ответ

0 голосов
/ 28 апреля 2018

Если файлы не слишком большие, вы можете использовать sorted() для сортировки строк и сравнения результирующих списков. Для создания различий в содержании файлов вы можете использовать модуль difflib:

import difflib    

with open('file1') as f1, open('file2') as f2:
    f1_lines = sorted(f1)
    f2_lines = sorted(f2)

    if f1_lines == f2_lines:
        print("Equal so far")

    f2_lines.append("Extra line\n")

    print("".join(difflib.unified_diff(f1_lines, f2_lines)))

Выход:

Equal so far
--- 
+++ 
@@ -1,3 +1,4 @@
 Hi, how are you ?
 It's already late.
 My name is Sayan.
+Extra line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...