vergleichen von inhalte

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
genervternewbie
User
Beiträge: 25
Registriert: Samstag 17. November 2018, 18:42

Hallo zusammen,
auf der einen Seite habe ich eine Lesegerät wo ich etwas ausgelesen bekomme und als zahlen angezeigt werden ( nenne die ausgabe (321987564) mal a )
auf der andere Seite habe ich eine Datei (nenne sie mal B (in.dat))
B =
123456789
987654321
...
...
321987564

Code: Alles auswählen

f = file("in.dat", "r")
        for line in f:
            if line == a:
                print("OK")
            else:
                print("NO")
        f.close()
        print(a)
Als Ergebnis bekomme ich folgends Angezeigt
NO
NO
...
...
OK
321987564
eine alternative wäre über eine DB
sql = "SELECT * FROM input WHERE in1 = '" + a + "'"
Beim auslesen aus DB bekomme ich weniger angezeigt.
So nun zu meiner Frage, besteht die möglichkeit wie bei DB auslesen, ohne alle Einträge angezeigt zu bekommen ?
Wenn möglich dann nur OK oder NO.
Benutzeravatar
sparrow
User
Beiträge: 4198
Registriert: Freitag 17. April 2009, 10:28

Ich verstehe das Problem nicht. Du bekommst doch so viel angezeigt, weil du das anzeigen lässt. Ohne das print Statement auch keine Ausgabe.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@genervternewbie,

ich verstehe die Frage auch nicht
Durch Verwendung von if - else wird für jede gelesene Zeile der Datei entweder "OK" oder "NO" ausgegeben.
Will man zum Beispiel nur eine Ausgabe für den Fall dass "a" gefunden wurde, muss man den else- Zweig weglassen. Dann gibt es nur ein "OK" für jede Zeile, in der "a" steht.
Sirius3
User
Beiträge: 17759
Registriert: Sonntag 21. Oktober 2012, 17:20

file existiert nicht. Jedenfalls nicht, wenn Du Python3 benutzt. Was du aber tun solltest.
Dateien öffnet man mit dem with-Statement.
Willst Du nur wissen, ob a in der Datei vorkommt, oder wo und wie oft?
Antworten