簡體   English   中英

創建表示兩個文本文件之間差異的行列表

[英]Create a list of lines representing the difference between two text files

我有兩個文本文件。 我想根據兩個文件中看到的不同行找到兩個文件之間的百分比差異。 我可以使用列表中的行數,然后使用兩個文件的行數來計算百分比差異(除非有一些內置的 python 函數可以這樣做)。 例如

文件 1:

apple
ball
cat
dog

文件2:

ball
cat
elephant

結果列表:

[apple, dog, elephant]

什么是最簡單和最快的方法來做到這一點?

這取決於您如何定義“兩個文本文件之間的差異”。 假設該順序對您無關緊要,並且您只想從兩個文件中找到沒有出現在另一個文件中的行,這是一種可能的解決方案:

set_1 = {line.strip() for line in open(file_1_path, 'r').readlines()}
set_2 = {line.strip() for line in open(file_2_path, 'r').readlines()}
difference = (set_1 | set_2) - (set_1 & set_2)

對於序列匹配差異,您可以按照 wjandrea 的建議進行difflib 你可以這樣使用它:

import difflib
list_1 = [line.strip() for line in open(file_1_path, 'r').readlines()]
list_2 = [line.strip() for line in open(file_2_path, 'r').readlines()]
difference = [line[2:] for line in difflib.ndiff(list_1, list_2) if line[0] in {'+', '-'}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM