2009-08-26 10 views
8

私はcmp、diffなどを使って2つのファイルを比較することができますが、私が探しているのは2つのファイルのパーセンテージの違いを示すユーティリティです。2つのテキストファイルのパーセント差

このようなユーティリティが存在しない場合、どのアルゴリズムも問題ありません。私はファジープログラミングについて読んだことがありますが、私はあまり理解していません。

+0

「パーセント差」はどのように定義しますか?不足している、余分な、スワップされた文字/単語/行をどのように考慮しますか? –

+1

ファイルにスワップされた文字や単語や行はありません。 2つのファイルはログファイルであり、1つのログファイルはすべてログファイルです。つまり、システムは完璧に動作しています。 1時間ごとに新しいログが書き込まれます。だから、新しく書き出したログと標準ログを比較したい。新しいログが標準ログと異なる場合、レベル{X}にメールを送信してエンジニアをサポートします。今は明らかですか? – Mohamed

+0

参照:http://stackoverflow.com/questions/145607/text-difference-algorithm – tzot

答えて

26

あなたはドキュメントからdifflib.SequenceMatcher ratio方法

を使用することができます。

戻り におけるフロート範囲として 配列類似性の尺度[0、1]。例えば

from difflib import SequenceMatcher 
text1 = open(file1).read() 
text2 = open(file2).read() 
m = SequenceMatcher(None, text1, text2) 
m.ratio() 
+0

このライブラリの一部はわかりませんでした。 – Mohamed

0

Beyond Compareは非常に持っている "-s" を使用してパーセンテージ差異を与えることができているように見えます良いファイルの違いの統計をcsvにエクスポートします。行レベルの違いが報告されているので、ソースコードファイルを比較するとよいです。