Ich versuche eine Datei zu lesen, um zu prüfen, ob der Inhalt eine 0 oder eine 1 mit dem folgenden Code ist:
#!/usr/bin/env python
file = open("test", "r")
read=file.read()
if read == 2:
print "do something"
else: print "do something else"
Aber die Ausgabe der Datei ist immer "etwas anderes", auch wenn die Datei eine 2 enthält.
Weiß jemand, was ich falsch mache?
Danke im Voraus!
Antworten:
2 für die Antwort № 1Zuerst vergleichen Sie eine Zeichenfolge mit einem int read == 2
. Das wird immer falsch zurückgeben. Berücksichtigen Sie auch mögliche Zeilenenden und sehen Sie sich Ihren Einzug an. Der Code sollte so aussehen:
file = open("test", "r")
read=file.read().rstrip("n") # removes possible line endings
if read == "2":
print "do something"
else:
print "do something else"
Hoffe das hilft!
1 für die Antwort № 2
file.read()
Gibt eine Zeichenfolge zurück. Wenn es nur 2 in der Datei gibt, müssen Sie sie in konvertieren int
:
read = int(file.read())
Oder führen Sie stattdessen eine String-Überprüfung durch:
if read == "2":
1 für die Antwort № 3
Sie vergleichen eine Zeile, die Sie aus einer Datei lesen (also eine Zeichenfolge), mit einer Ganzzahl. Versuchen Sie Folgendes:
if int(read.strip()) == 2:
print "Hello!"