内容比较两个文件而不对它们进行排序

时间:2018-04-28 19:03:55

标签: python bash file comparison

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 ?

在我的场景中,两个文件都是内容相同的。

我想创建一个脚本(基本上不使用sortcommcmpdiff)来比较这两个文件test1.txttest2.txt,内容明智并产生结果:

File Comparison status - Success 

或如果内容不同,则

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

其中result.txt将列出额外或缺失或修改的内容。

脚本可以是Bash或/和Python。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

如果文件不是太大,您可以使用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