2017-06-27 2 views
0

Ich habe ein Datum in einer Datei und eine in einer anderen. Sie sehen wie folgt aus:Python String Vergleich nicht wie erwartet

log1.log -> "06/11/2017"

und

log2.log -> "06/11/2017"

speziell auf der Suche nach Übereinstimmungen wie diese, ich dieses Bit geschrieben haben:

if row != date: 
    pass 
elif row == date: 
    print("match found") 

Und ich habe bereits versucht, die Logik zu machen, anstatt auf Ungleichheit zu prüfen, prüfen Sie auf Gleichheit; aber es hat nicht funktioniert. Ich habe auch die gefundenen Werte in eine neue Textdatei exportiert und auf Leerzeichen oder Zeilenumbrüche geprüft, die in einem Terminal schwer zu erkennen wären. Kein Würfel.

Das Drucken der Daten auf dem Terminal bestätigt, dass es sich tatsächlich um Übereinstimmungen handelt.

Beispiel Ausgabe:

[#] 06/13/2017 06/13/2017

Als ich sie beide mit einem Raum drucken zwischen ihnen und dieser Hash-Notation den Ausdruck organisiert zu halten suchen.

Das letzte, was ich versuchte, ist die oberflächliche Umwandlung von beiden in Strings im Vergleich. Bin ich verrückt? Was ist denn hier los?

Ich kann alles außer den Daten selbst zur Verfügung stellen. Allerdings sprechen wir buchstäblich nur .log-Dateien mit Zeilen, die ich verwendet habe, um zu greifen und so biete ich die obige Ausgabe an, um jegliche Datenprobleme auszuschließen.

edit: als du meinen Beitrag editiert hast, hast du meine Grammatik und Lesbarkeit absolut umgebracht. Es war Kauderwelsch, was die englische Sprache betraf, als du damit fertig warst. Lass es uns jetzt erstmal alleine lassen, k? Das Thema des Satzes ist "die Logik". Was ich zurück bearbeitet habe, ist in Ordnung. Und Sie müssen Pluralisierung auf "Whitespace" nicht ablehnen. Es ist bereits impliziert, dass es mehrere Instanzen davon geben könnte.

+0

Gibt es in jeder Protokolldatei nur eine einzige Zeile? Versuchen Sie, Zeilen mit Zeilennummern oder eine Zeile mit der gesamten Datei zu vergleichen? – depperm

+0

Sie sind vielleicht unsichtbare Zeichen in Ihren Strings. Versuchen Sie, sie in Bytes umzuwandeln und vergleichen Sie die Ergebnisse. – BoilingFire

+0

Nah mehrere für jedes Protokoll und jede andere Zeile in log2 ist leer. Ich werde den Code einfügen. https://pastebin.com/xP0pibEc –

Antwort

1

Verwenden Sie encoding='UTF-16LE' Argument, wenn open in der Datei.

Verwandte Themen