Ce code fonctionne. Je prend juste 'login' en argument du script, et je vire le print des couples :
#! /usr/bin/python
import sys
login=sys.argv[1]
opfil=open('/etc/passwd','r')
lines = opfil.readlines()
for i in lines:
valdon=i.split(':')[0]
if str(login) == str(valdon):
print "Cet identifiant existe !"
opfil.close()
Résultat :
$ ./login.py prout
$ ./login.py root
Cet identifiant existe !
Après, tu peux faire la boucle plus propre :
for i in file('/etc/passwd','r'):
valdon=i.split(':')[0]
if str(login) == valdon:
print "Cet identifiant existe !"
Plus besoin de close() parce que le fichier sera fermé automatiquement. Pas nécessaire de forcer 'valdon' en str(), c'est déjà une string (je l'ai laissé pour 'login', vu que je ne sais pas ce que form1.lineEdit1_1.text() te renvoie).
# Chez moi ça marche...
Posté par Amand Tihon (site web personnel) . En réponse au message Comparaison de variables avec python. Évalué à 2.
#! /usr/bin/python import sys login=sys.argv[1] opfil=open('/etc/passwd','r') lines = opfil.readlines() for i in lines: valdon=i.split(':')[0] if str(login) == str(valdon): print "Cet identifiant existe !" opfil.close()Résultat : Après, tu peux faire la boucle plus propre :for i in file('/etc/passwd','r'): valdon=i.split(':')[0] if str(login) == valdon: print "Cet identifiant existe !"Plus besoin de close() parce que le fichier sera fermé automatiquement. Pas nécessaire de forcer 'valdon' en str(), c'est déjà une string (je l'ai laissé pour 'login', vu que je ne sais pas ce que form1.lineEdit1_1.text() te renvoie).