IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème avec readlines()


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Problème avec readlines()
    Salut à tous,
    Je suis en train de coder un bot IRC, et pour vous exposer plus simplement mon problème, je n'ai pris qu'un extrait du code, histoire que vous n'ayez pas à vous farcir les 500 lignes de code pour pas grand chose...

    C'est assez simple: pour la partie administration de mon bot, les identifiants des administrateurs sont stockés dans un fichier texte. Lorsque quelqu'un envoie un message privé au bot (message qui est censé être une commande), celui ci vérifie que la personne est un admin (voir code), puis si elle l'est, exécute la commande (si le message en est une, enfin c'est une autre histoire, c'est pas dans le code que je vous fourni).

    Le problème que j'ai rencontré, c'est que seul le dernier admin du fichier texte est reconnu...
    Je vous laisse voir le code, ainsi que le fichier qui contient les identifiants.

    N'hésitez pas à "dé-commenter" la dernière ligne du fichier txt et lancer le script pour voir que ça marche...
    test.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import irclib
    fileHandle = open ( 'admins.txt', 'r' )
    maitres = fileHandle.readlines()
    fileHandle.close()
    masque_auteur = "M4nt0u3!~TimBuk@195.139.200-77.rev.gaoland.net"
    try:
        admin = maitres.index(irclib.nm_to_h(masque_auteur))
    except:
        admin = "Pas admin"
    for ligne in maitres:
        print ligne
    print "masque_auteur: %s\nmasque court: %s" % (masque_auteur, irclib.nm_to_h(masque_auteur))
    print ""
    print admin
    admins.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    195.139.200-77.rev.gaoland.net
    364.179.621-55.rev.gaoland.net
    789.128.942.68.rev.gaoland.net
    #195.139.200-77.rev.gaoland.net
    J'ajoute aussi tout les fichiers nécessaires au lancement du script, il faut donc renommer irclib.py en irclib.pyc pour qu'il fonctionne, étant donné que le forum ne gère pas les fichiers python compilés.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Ne serais-ce pas simplement parce que readlines conserve les caractères de fin de ligne ?
    Essaie de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maitres = fileHandle.readlines()
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maitres = [line.strip() for line in fileHandle]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    C'est super, ça marche très bien, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème SWT & thread avec readLine()
    Par TheFuzion dans le forum Général Java
    Réponses: 1
    Dernier message: 06/05/2007, 18h42
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo