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 :

Recuperer une list dans un autre script


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut Recuperer une list dans un autre script
    Bonjour a tous ,
    j'ai un petit soucis pour recuperer une liste dans un autre script voila :
    le script 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def list_tests():
        list_tests = []  \
        + obj_list1  \
        + obj_list2\
        + []
     
        return list_tests
    script 2:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    def importAllModul(path):
        """import des modules 
        """
        test_directorie = ''
        for root, dirs, files in os.walk(path, onerror=errormanager ):
            print "**** Folder ROOT %s ****"%(root)
            test_directorie = basename(root)
            print "        "+test_directorie
            if(dirs):
                print "    ** List of battery of tests: **"
                for d in dirs:
                    print "        "+ d
     
            if(files):
                for f in files:
                    v = str(f)
                    if(v.endswith('_tests.py')):
                        print "        "+"        "+ v
                        v = v.strip('.py')
                        print  "Import  "+test_directorie+"."+v
                        importMod = test_directorie+"."+v
     
                        #import module
                        mod = __import__(importMod, globals={}, locals={},fromlist=[])
     
     
                        print type(mod )
                        print
                        print "*************************************"
                        print
                        return mod
    mais sa ne me renvoie rien
    avez vous une idée??

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    essaie d'appeler la liste avec un nom différent de la fonction. là la liste et la fonction ont le même nom, je pense qu'ils entrent en conflit.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    sa fonctionne toujours pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def list_tests():
        list_testszzz = []  \
        + obj_alarm  \
        + obj_calibrate \
        + []
        print "RETURN list_tests "
        return list_testszzz
     
    def returnTest():
        return list_tests()
     
     
    returnTest()
    or que si je mets un PRINT a la place d'un RETURN sa marche !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def list_tests():
        list_testszzz = []  \
        + obj_alarm  \
        + obj_calibrate \
        + []
        print "RETURN list_tests "
        return list_testszzz
     
    def returnTest():
        print list_tests()
     
     
    returnTest()

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    et bien quand python arrive à la ligne :
    python execute bien le code et récupère la valeur retournée (None dans le tout dernier cas), seulement avec cette ligne, la valeur n'est pas stockée dans une variable !
    Il te suffirait donc de remplacer cette ligne par exemple par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEST_VALUE = returnTest()
    Ce script, lorsqu'il sera importé, aura une variable TEST_VALUE

    en fait depuis un autre script tu pourrais taper directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import script1
     
    list_modules=script1.list_test()

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    pareil
    il me dit que l'objet " list" n'est pas callable

  6. #6
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    pourrais-tu afficher le message d'erreur complet s'il-te-plaît ?

  7. #7
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonsoir,

    En gros pour accéder à une information dans un module il faut tout d'abord que cette dernière soit stockée dans une variable. Et Python aime bien voir ses constantes en Majuscules.

    Tu peux tester ceci.
    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
    ### Fichier module.py ###
    def list_tests():
        list_testszzz = []
        #print "RETURN list_tests " #ca ne change rien normalement
        return list_testszzz
     
    def returnTest():
        return list_tests()
     
     
    db = returnTest()
     
     
    ### Fichier test.py ###
    import module
    print module.db
    @+ et bon code
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    je pense que le probleme vient plutot du script qui parcour les repertoire pour recuperer les modules
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    def importAllTest(path):
        """import des modules 
        """
     
     
        test_directorie = ''
        for root, dirs, files in os.walk(path, onerror=errormanager ):
            print "**** Folder ROOT %s ****"%(root)
            test_directorie = basename(root)
            print "        "+test_directorie
            if(dirs):
                print "    ** List of battery of tests: **"
                for d in dirs:
                    print "        "+ d
     
            if(files):
                for f in files:
                    v = str(f)
                    if(v.endswith('_tests.py')):
                        print "        "+"        "+ v
                        v = v.strip('.py')
                        print  "Import  "+test_directorie+"."+v
                        importMod = test_directorie+"."+v
     
                        #import module
                        mod = __import__(importMod, globals={}, locals={}, fromlist=[])
     
                        print mod
                        print
                        print
                        print "*************************************"
                        print
    voila le resultat
    **** Folder ROOT D:\Sauvegarde\MesProjets\Python\test_fftest_20100924\src\package\ ****

    ** List of battery of tests: **
    basic
    calibrate
    **** Folder ROOT D:\Sauvegarde\MesProjets\Python\test_fftest_20100924\src\package\basic ****
    basic
    basic_tests.py
    Import basic.basic_tests
    basic tests 1.0
    RETURN list_tests
    <module 'basic' from 'D:\Sauvegarde\MesProjets\Python\test_fftest_20100924\src\package\basic\__init__.pyc'>


    *************************************

    **** Folder ROOT D:\Sauvegarde\MesProjets\Python\test_fftest_20100924\src\package\calibrate ****
    calibrate
    calibrate_tests.py
    Import calibrate.calibrate_tests
    <module 'calibrate' from 'D:\Sauvegarde\MesProjets\Python\test_fftest_20100924\src\package\calibrate\__init__.pyc'>

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

Discussions similaires

  1. [Batch] Parcourir une liste dans un autre fichier
    Par jepasderemy dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 22/10/2009, 09h49
  2. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 14h51
  3. Réponses: 17
    Dernier message: 12/07/2006, 22h04
  4. Shell - Récupérer une variable dans un autre fichier
    Par claralavraie dans le forum Linux
    Réponses: 9
    Dernier message: 11/01/2006, 16h25

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