/ / Python read () if instrukcja - python

Python read () if instrukcja - python

Próbuję odczytać plik, aby sprawdzić, czy zawartość jest 0 lub 1 z następującym kodem:

#!/usr/bin/env python

file = open("test", "r")

read=file.read()

if read == 2:
print "do something"
else:   print "do something else"

Jednak wynik pliku zawsze jest "rób coś innego", nawet jeśli plik zawiera 2.

Czy ktoś wie, co robię źle?

Z góry dziękuję!

Odpowiedzi:

2 dla odpowiedzi № 1

Przede wszystkim porównujesz ciąg znaków z int read == 2. To zawsze zwróci fałsz, a także uwzględnij możliwe zakończenia linii i obserwuj wcięcia. Kod powinien wyglądać tak:

file = open("test", "r")

read=file.read().rstrip("n")   # removes possible line endings

if read == "2":
print "do something"
else:
print "do something else"

Mam nadzieję że to pomoże!


1 dla odpowiedzi nr 2

file.read() zwraca ciąg znaków. Jeśli w pliku są tylko 2 pliki, musisz go przekonwertować int:

read = int(file.read())

Lub zamiast tego wykonaj sprawdzenie ciągu:

if read == "2":

1 dla odpowiedzi nr 3

Porównujesz linijkę, którą odczytałeś z pliku (to znaczy, ciąg) z liczbą całkowitą. Spróbuj wykonać następujące czynności:

if int(read.strip()) == 2:
print "Hello!"