Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

So sánh 2 file dòng per dòng trong Python (difflib)

Module difflib so sánh sequence (dòng văn bản), tạo diff unified format.

Ví dụ

import difflib

with open('file1.txt') as f1, open('file2.txt') as f2:
    f1_lines = f1.readlines()
    f2_lines = f2.readlines()

# Unified diff
for line in difflib.unified_diff(f1_lines, f2_lines, fromfile='file1', tofile='file2', lineterm=''):
    print(line)

Kết quả mẫu

--- file1
+++ file2
@@ -1,3 +1,3 @@
 Hello
 People
-of
-the
-world
+from
+India

Các hàm diff khác

  • difflib.context_diff() — context diff format.
  • difflib.ndiff() — dòng có prefix + - ? .
  • difflib.get_close_matches() — fuzzy match string.
  • difflib.SequenceMatcher — ratio similarity, matching blocks.
# Similarity ratio
sm = difflib.SequenceMatcher(None, "hello", "hella")
print(sm.ratio())  # 0.8