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 :

comment analyser les fichiers ini et choisire la fonction aproprier selon le fichier ini avec Python


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut comment analyser les fichiers ini et choisire la fonction aproprier selon le fichier ini avec Python
    bonjour

    je cherche a utiliser un fichier ini pour configurer la résolution utiliser dans mon script et voudrais de l'aide a savoir comment réaliser cela
    j'ai créer cette fois la fonction ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #RECUP QUALITE FHD
    import re, os
    def FHD(RFHD):
        mykey = open("/home/gaaara/giver/tmp/ajax.json", "r")
        for text in mykey:
            match = re.search('"FHD":"(.+?).mp4', text)
        if match:
     
            s = 'http://www.website.fr:1935/' + match.group(1) + '.mp4?audioindex=0.smil'
     
     
        return  s
    en fait il a 2 autre fonction semblable dans le fichier HD et SD qui sons les autre fonction de résolution

    voila et merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 277
    Points
    9 277
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Les fichiers .ini se traitent avec le module "configparser" (" ConfigParser " sous Python 2).

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    j'ai fait un test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import ConfigParser
    import sys
    sys.path.append('files/')
    from xrez import FHD
    #from xrez import HD
    #from xrez import SD
    #variables
    x1080 = FHD('RFHD')
    #x720 = HD('RHD')
    #x480 = SD('RSD')
    #fin
     
    config = configparser.ConfigParser()
    config['resolution'] = {'Write the resolution wish': [x1080,x720,x480]}
    with open('config.ini', 'w') as configfile:
        config.write(configfile)
    edit
    un nouvelle erreur ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     File "test3.py", line 13, in <module>
        config = configparser.ConfigParser()
    NameError: name 'configparser' is not defined

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 277
    Points
    9 277
    Billets dans le blog
    6
    Par défaut
    Bah oui, tu importes "ConfigParser" et tu appelles ensuite "configparser.ConfigParser()": il te dit à juste titre que "configparser" n'existe pas...

    Si tu es sous Python 2, l'importation est ok, mais tu dois appeler ensuite "ConfigParser.ConfigParser()"

    Si tu es sous Python 3, il faut changer l'importation en "import configparser"

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    ... c'est complex le python loll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
        File "test3.py", line 14, in <module>
            config['resolution'] = {'Write the resolution wish': [x1080,x720,x480]}
        AttributeError: ConfigParser instance has no attribute '__setitem__'

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 474
    Points : 9 277
    Points
    9 277
    Billets dans le blog
    6
    Par défaut
    Si ça parait complexe, c'est parce que tu écris n'importe quoi sans respecter la doc. En faisant comme ça, tu vas bloquer à chaque ligne.

    Ton code ne marche pas parce que les fichiers ini sont des fichiers texte: on ne peut pas y mettre des dictionnaires ou des listes. Et puis il faut créer la section avant d'y mettre des options avec leur valeur.

    Exemple sous Python 3 (Je ne sais toujours pas si tu es sous Python 2 ou 3):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import configparser
     
    config = configparser.ConfigParser()
    config.add_section('resolution')
    config.set('resolution', 'Write the resolution wish', str([1080, 720, 480]))
     
    with open('config.ini', 'w') as configfile:
        config.write(configfile)
    Mais attention à la lecture: tu vas récupérer la liste sous forme d'une chaine de caractères "[1080, 720, 480]". Pour retrouver la liste initiale on peut faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste = [int(elem) for elem in chaine[1:-1].split(',')]
    L'avantage des fichiers ini, c'est qu'on peut intervenir en dehors du programme avec un simple éditeur de texte pour consulter/modifier son contenu. Mais si cette fonctionnalité n'est pas utile, on peut utiliser d'autres solutions qui, elles, permettent de stocker des objets binaires complexes: regarde en particulier du côté du module shelve.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Si ça parait complexe, c'est parce que tu écris n'importe quoi sans respecter la doc. En faisant comme ça, tu vas bloquer à chaque ligne.

    Ton code ne marche pas parce que les fichiers ini sont des fichiers texte: on ne peut pas y mettre des dictionnaires ou des listes. Et puis il faut créer la section avant d'y mettre des options avec leur valeur.

    Exemple sous Python 3 (Je ne sais toujours pas si tu es sous Python 2 ou 3):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import configparser
     
    config = configparser.ConfigParser()
    config.add_section('resolution')
    config.set('resolution', 'Write the resolution wish', str([1080, 720, 480]))
     
    with open('config.ini', 'w') as configfile:
        config.write(configfile)
    Mais attention à la lecture: tu vas récupérer la liste sous forme d'une chaine de caractères "[1080, 720, 480]". Pour retrouver la liste initiale on peut faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste = [int(elem) for elem in chaine[1:-1].split(',')]
    L'avantage des fichiers ini, c'est qu'on peut intervenir en dehors du programme avec un simple éditeur de texte pour consulter/modifier son contenu. Mais si cette fonctionnalité n'est pas utile, on peut utiliser d'autres solutions qui, elles, permettent de stocker des objets binaires complexes: regarde en particulier du côté du module shelve.
    oublier de le dire .. python 2 connais pas shelve vais allez voir la doc

    p.s j'ai du me mélanger de donc pour construire le script ....

    efectivement j'ai fait erreur de doc

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

Discussions similaires

  1. [XL-2010] Comment analyser les données d'une combobox?
    Par VinceVDB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2012, 20h58
  2. Réponses: 6
    Dernier message: 30/11/2010, 20h31
  3. Comment analyser les logs système ?
    Par gifffftane dans le forum Apache
    Réponses: 5
    Dernier message: 27/11/2008, 12h02
  4. Réponses: 3
    Dernier message: 18/03/2008, 21h55
  5. Réponses: 5
    Dernier message: 01/11/2006, 16h04

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