Seite 1 von 1

vergleichen von inhalte

Verfasst: Sonntag 10. Oktober 2021, 14:32
von genervternewbie
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.

Re: vergleichen von inhalte

Verfasst: Sonntag 10. Oktober 2021, 14:45
von sparrow
Ich verstehe das Problem nicht. Du bekommst doch so viel angezeigt, weil du das anzeigen lässt. Ohne das print Statement auch keine Ausgabe.

Re: vergleichen von inhalte

Verfasst: Sonntag 10. Oktober 2021, 14:53
von rogerb
@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.

Re: vergleichen von inhalte

Verfasst: Sonntag 10. Oktober 2021, 16:24
von Sirius3
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?