比较两个文件的内容而不进行排序

2024-03-29 14:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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。我该怎么做?你知道吗


Tags: nametxtyou内容ismyithi
1条回答
网友
1楼 · 发布于 2024-03-29 14:37:35

如果文件不是太大,可以使用sorted()对行进行排序并比较结果列表。要生成文件内容的差异,可以使用^{}模块:

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

相关问题 更多 >