2017-03-10 4 views
-2

Ich möchte den Inhalt in Textdateien mit dem Inhalt in einer Sammlung von Textdateien vergleichen.Python - Inhalt von Textdateien vergleichen

Zum Beispiel

TEXT Datei 1 (Ausgang):

123abc 

TEXTDATEI 2:

567xyz 

TEXT Datei 3:

Hier
123abc 

, TEXT FILE 1 Matches mit TEXT FILE 3 so, dass ich angezeigt werden soll "SIE ENTER Mai" auf dem LCD. Aber in dem Fall, dass es keine Übereinstimmung gab, möchte ich "Sie können nicht eingeben" auf dem LCD.

Ich benutze Raspberry Pi für dieses Projekt von mir.

+0

sollte Ihr Thema allgemeiner sein wie – bkausbk

Antwort

0

Dies kann als:

files_path = ["path_of_file1", "path_of_file2", "path_of_file3"] 
files_text = [] 
flag = False 
for path in files_path: 
    with open(path) as f: 
     text = f.read() 
     files_text.append(text) 
total_files = len(files_text) 

for item in range(total_files): 
    index = item + 1 
    for it in range(total_files - index): 
     if files_text[item] == files_text[index]: 
      flag = True 
     if index < total_files: 
      index = index + 1 
if (flag): 
    print "YOU MAY ENTER" 
else: 
    print "YOU CANNOT ENTER" 
+0

Dank „Wie eine Textdatei gegen andere in Phyton vergleichen“ für den Code ... Aber es zeigt immer "Du kannst nicht eintreten", auch wenn es eine Übereinstimmung gibt. Gibt es einige Korrekturen, die ich im Code machen kann, um diesen Fehler zu beseitigen? – Jax

+0

danke für den Hinweis Bug, der Index wurde nicht zurückgesetzt, nachdem die zweite Schleife abgeschlossen ist, jetzt sollte es funktionieren. – SHAHS

0

filecmp die Arbeit machen sollte:

import filecmp 

test_filename = 'test.txt' 
filename_list = ['file_1.txt', 'file_2.txt'] 
matched = any([_ for f_name f_name 
       in filename_list 
       if filecmp.cmp(test_filename, f_name)]) 

if matched:    
    '{} and {} are equal'.format(filename_1, filename_2) 
else: 
    '{} and {} are NOT equal'.format(filename_1, filename_2) 
Verwandte Themen