2015-09-26 5 views
-2

Я пытаюсь написать программу, которая будет открывать файлы, читать содержимое и сравнивать их с другими открытыми файлами. Мне нужно показать, не слишком ли близки друг к другу, похожие или точные копии друг друга. Я пытаюсь использовать модуль filecmp, но он не работает для меня. Вот что у меня есть до сих пор:Сравнение содержимого txt-файлов в Python

import filecmp 

#Opens selected files 
file1 = open('file1.txt') 
file2 = open('file2.txt') 

#Compares different files 
filecmp.cmp('file1','file2', shallow=False) 

#Closes Files 
filecmp.clear_cache() 
close.file1 
close.file2 

Любые предложения?

+0

не уверен filecmp но, по крайней мере, назвать 'file1.close()'. – timakro

+1

'filecmp' будет показывать только равные файлы, как вы определяете« Similar »? – AChampion

ответ

0
>>> import filecmp 
>>> filecmp.cmp('C://Desktop/a.txt', 'C://Desktop/b.txt') 
True 
>>> 

В этом случае у меня есть 2 текстовых файлов a.txt и b.txt. Оба файла содержат одну и ту же строку: string.

Если изменить string в одном из файлов на что-то другое, то выход False

0
  1. Загрузите содержимое каждого файла в списке
  2. Включите списки в наборы
  3. Вычесть один от другого
  4. Результат обеспечивает различия между двумя, которые вы можете анализировать.

Например:

list1 = set(line.strip() for line in open("file1.txt")) 
list2 = set(line.strip() for line in open("file2.txt")) 
diff1 = list1 - list2 # subtract 1 set from the other for the difference 
diff2 = list2 - list1 # subtract 1 set from the other for the difference 
save = open("diff.txt",'w') # Write file differences details for analysis 
for i in diff1: 
    save.write(i+'\n') 
save.close() 
save = open("diff2.txt",'w') # Write file differences details for analysis 
for i in diff2: 
    save.write(i+'\n') 
save.close()