2017-10-21 95 views
1

J'ai un fichier CSV contenant des informations et le code parcourt chaque ligne du fichier CSV, et si le nom d'utilisateur saisi correspond à la valeur de la ligne, il permettra à l'utilisateur de se connecter.Python - Message d'impression à la fin de l'itération d'un fichier CSV

Cependant, je ne suis pas sûr comment autoriser mon programme à dire quand leurs détails ne sont pas corrects. Le "non trouvé" s'imprime après chaque itération plutôt qu'à la fin du fichier CSV.

Comment est-ce que je peux faire en sorte que, une fois à la fin de la boucle for, il indique que les détails ne sont pas trouvés?

Merci.

username = str(input("Enter your username: ")) 
password = str(input("Enter your password: ")) 

file = open("details.csv","r") 
print('Details opened') 
contents = csv.reader(file) 
print('reader established') 

for row in contents: 
    print('begin loop') 
    if username == row[4]: 
     print("Username found") 
     if password == row[3]: 
      print("Password found") 
      main() 
    else: 
     print("not found") 

Répondre

1

solution simple est d'ajouter la variable is_found comme exemple:

is_found = False 

for row in contents: 
    print('begin loop') 
    if username == row[4]: 
     print("Username found") 
     if password == row[3]: 
      print("Password found") 
      main() 
      is_found = True 

if not is_found: 
    print("not found") 
+0

merci parfait. – AgentL3r

+0

@BearBrown votre solution trop complexe pour Python;) –

2

Utilisez break et de toute façon stop using print for debugging

for row in contents: 
    print('begin loop') 
    if username == row[4]: 
     print("Username found") 
     if password == row[3]: 
      print("Password found") 
      main() 
      break 
else: 
    print("not found")