Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PYTHON] Mon premier script : scan des informations sur un .ini

Sujet résolu
    30 décembre 2006 à 13:05:40

    Bonjour, je fais un script en python pour la communauté de MMORPG "FRoG Creator" .
    Je fais mon 1er script en Python, je voudrai savoir comment lire le fichier Data.ini et que mon programe dise ce qu'il y a dans la ligne après le "="

    Exemple de mon Data.ini :

    [MAX]
    MAX_PLAYERS=100
    MAX_ITEMS=250
    MAX_NPCS=250
    etc. 

    Je voudrai juste que mon logiciel en python dise (en exemple)

    Maximum de joueurs simultane : (ici 100)
    Maximum  d'objets : (ici 250)
    maximum de NPC : (ici 250)
    etc.


    Je répondrai à toutes vos questions .
    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2006 à 13:20:45

      REGEX.

      `[MAX]
      MAX_PLAYERS=(.+)
      MAX_ITEMS=(.+)
      MAX_NPCS=(.+)`isU


      Ou dans le genre ;)
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2006 à 13:22:57

        merci pour ta réponce je voudrai juste savoir le code de lecture et d'affichage ^^
        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2006 à 13:26:54

          En PHP c'est preg_match_all().
          A toi de voirs pour Python.
          • Partager sur Facebook
          • Partager sur Twitter
            30 décembre 2006 à 13:29:29

            je suis un nul en python je viens de commencer a apprendre, je connais déjà quelques bases ^^
            • Partager sur Facebook
            • Partager sur Twitter
              30 décembre 2006 à 19:06:07

              Salut,
              Il suffi d'ouvrir le fichier et de faire une chaine de caractère avec ce qu'il y a après le égal.
              Voici un code possible :


              fichier = file('chemin du data.ini entre guillemets','r')
              liste = []
              while 1:
                  ligne = fichier.readline()
                  if ligne == '':
                      break
                  try:
                      ligne = ligne[ligne.index('=')+1:len(ligne)-1]
                      liste.append(ligne)
                  except:
                      pass
              fichier.close()

              print "Maximum de joueurs simultane : %s" % liste[0]
              print "Maximum  d'objets : %s" % liste[1]
              print "Maximum de NPC : %s" % liste[2]

                 
                 

              Et ainsi de suite...
              N'hesite a me poser des questions si tu ne comprends pas le code

              Cordialement,
              Lyrius
              • Partager sur Facebook
              • Partager sur Twitter
                30 décembre 2006 à 22:28:54

                Sinon tu peux essayer ta_ligne.split('=') si tu es sur qu'il n'y a pas d'egal dans la valeur.

                Par exemple :
                data = open('data.ini')

                #le dictionnaire des valeurs
                variables = {}

                for ligne in data:
                    parties = ligne.split('=')
                    if len(parties) == 2:
                        #c'est a dire qu'on a VARIABLE=VALEUR
                        try:
                            variables[parties[0]] = eval(parties[1])
                        except:
                            pass

                       
                print variables

                Ecrit "{'MAX_NPCS': 250, 'MAX_PLAYERS': 100, 'MAX_ITEMS': 250}".

                Tu peux aussi utiliser ta_chaine.strip() pour permettre de mettre des espaces (enleve les caracteres blancs du debut et de la fin).
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  30 décembre 2006 à 23:32:30

                  Sinon y'a pas mal de modules/recettes pour ça : http://www.google.com/search?client=safari&rls=fr&q=python+ini+files&ie=UTF-8&oe=UTF-8
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 décembre 2006 à 2:42:25

                    J'ai pris le script de Lyrius que j'ai réussi à modifier superbement et ca marche NIQUEL en .py par contre quand le mets en .exe il s'ouvre et se ferme direct, qu'elle qu'un peut m'aider?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 décembre 2006 à 9:45:15

                      Citation : FoX-Cyd

                      J'ai pris le script de Lyrius que j'ai réussi à modifier superbement et ca marche NIQUEL en .py par contre quand le mets en .exe il s'ouvre et se ferme direct, qu'elle qu'un peut m'aider?


                      Quand tu le mets en .exe...
                      Peux-tu être plus clair ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 décembre 2006 à 12:00:07

                        Je le compile avec py2exe (Tuto : http://www.siteduzero.com/tuto-3-12589-1-creer-un-executable-windows-avec-py2exe.html#ss_part_1 )et apres il m'ouvre et me ferme même avec le data.ini
                        Le script marche que en .py
                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 décembre 2006 à 12:40:34

                          Hum... Et le fichier data.ini, tu l'as mis dans le même dossier que ton .exe ?
                          Dans dist ?


                          Bisous, Nyu
                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 décembre 2006 à 12:57:21

                            oui et après je mets les fichiers dans le répertoire que j'ai envie qu'il soit et c'est pâreil (il beug juste quand il est en .exe mais pas en .py
                            • Partager sur Facebook
                            • Partager sur Twitter
                              31 décembre 2006 à 14:50:30

                              Je dirais qu'il y a des chances qu'il ne bugue pas mais qu'il fonctionne et qu'il se referme de suite car il n'y a rien pour bloquer le programme à la fin, mais pour en être sûr il faudrait le code en entier.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 décembre 2006 à 14:52:13

                                voilà mon code
                                print "Systeme par : \"FoX-Cyd\" pour FRoG Creator \n www.frog-creator.new.fr\nAffichage des infos de votre jeu :\n"


                                fichier = file('data.ini','r')
                                liste = []
                                while 1:
                                    ligne = fichier.readline()
                                    if ligne == '':
                                        break
                                    try:
                                        ligne = ligne[ligne.index('=')+1:len(ligne)-1]
                                        liste.append(ligne)
                                    except:
                                        pass
                                fichier.close()

                                print ""

                                print "Nom du jeu : %s" % liste[0]

                                print "Site internet du jeu : %s" % liste[1]

                                print "Port utilise : %s" % liste[2]

                                print "________________________________________________\n"

                                print "Scripting : %s" % liste[7]

                                print "Nombre de joueurs simultanes : %s" % liste[8]

                                print "Level max : %s" % liste[18]

                                print "Maximums d\'objets : %s" % liste[9]

                                print "Maximum de quetes : %s" % liste[20]

                                print "Maximum de cartes : %s" % liste[13]

                                print "Maximum de magasins : %s" % liste[11]

                                print "Maximum de PNJ : %s" % liste[10]

                                print "Maximum de guildes : %s" % liste[15]
                                print "Maximum de membres par guilde : %s" % liste[16]

                                print "\n"

                                raw_input('Faite entree pour quitter se programme ...')



                                • Partager sur Facebook
                                • Partager sur Twitter
                                  31 décembre 2006 à 15:24:50

                                  C'est autre chose alors, je viens de compiler ton programme et ça marche. Les seules différences que j'ai par rapport à toi c'est que j'ai changé liste[20] en liste[14] parce que le premier data.ini frog creator que j'ai trouvé sur le net n'a pas assez de lignes.

                                  Tu a bien tout ce qu'il y a sur l'image suivante dans le dossier dist quand tu lance le programme ? (t.exe c'est l'éxécutable de ton script)

                                  Image utilisateur

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    31 décembre 2006 à 15:30:55

                                    c'est bon ca marche je sais pas comment j'ai fais XD

                                    EDIT : Merci beaucoup à tout ceux qui m'ont aidé
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    [PYTHON] Mon premier script : scan des informations sur un .ini

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown