/ / Python read () if-Anweisung - python

Python read () if-Anweisung - Python

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 № 1

Zuerst 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!"