2009-08-26 8 views
8

두 파일을 비교하기 위해 cmp, diff 등을 사용할 수 있다는 것을 알고 있지만, 내가 찾고있는 것은 두 파일 사이의 백분율 차이를 제공하는 유틸리티입니다.두 텍스트 파일 사이의 백분율 차이

그러한 유틸리티가 없으면 모든 알고리즘이 제대로 작동합니다. 퍼지 프로그래밍에 대해 읽었지만 이해가되지 않습니다.

+0

"백분율 차이"는 어떻게 정의합니까? 빠진 여분의 스왑 된 문자/단어/라인은 어떻게 처리합니까? –

+1

파일에 스왑 된 문자 나 단어 또는 줄이 없어야합니다. 두 파일은 로그 파일, 하나의 로그 파일은 시스템이 완벽하게 실행되고 있다는 것을 의미하는 모든 로그 파일입니다. 매 시간마다 새로운 기록이 작성됩니다. 그래서 새로 작성된 로그와 표준 로그를 비교해보고 싶습니다. 새로운 로그가 표준 로그와 다른 경우 레벨 {X}의 엔지니어가 메일을 지원합니다. 지금은 분명하니? – Mohamed

+0

참조 : http://stackoverflow.com/questions/145607/text-difference-algorithm – tzot

답변

26

당신은 문서에서 difflib.SequenceMatcher ratio 방법

을 사용할 수

복귀 float로서 시퀀스 '유사도의 측정치를 의 범위는 [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"를 사용하여 비율 차이를 줄 수 dwdiff라는 유틸리티를 가지고 좋은 파일 차이 통계 CSV로 내보낼 수 있습니다. 라인 수준의 차이점이보고되므로 소스 코드 파일을 비교하는 것이 좋습니다.