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

Interfaçage autre langage Python Discussion :

vecteur C vers liste Python


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut vecteur C vers liste Python
    Bonjour a tous,
    Mon probleme est le suivant, et en regardant l'API C je n'ai pas compris grand chose...
    Jai un programme en C qui recupere des valeurs dun programme Python, il fait tout un tas de calculs et entre autres il remplit un vecteur que je voudrai pouvoir sortir et transformer en liste ou array pour la suite du programme python.

    La recuperation des valeurs Python vers C ne pose aucun probleme, cest le passage du vecteur C a la liste Python qui me pose probleme.

    Jai une array deja prete en Python qui nattend que je lui dise mon_array.append(mon_vecteur) a condition que je puisse avoir acces au valeur tel que je pourrai lavoir en C en faisant mon_vecteur[i]

    Est ce que qqun a deja eu ce probleme a resoudre ?

    Merci enormement d'avance

    Jeanphi

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Ma question est donc est ce quil existe un moyen simple du style

    Fin du programme C :

    return Py_BuildValue("[i]",mon_tableau)

    Appel dans Python :

    mon_array.append( ma_fonction_c(parametres_dentreee) )

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Jai trouve sur le net quon pouvait en travaillant sur des items remplir une liste python depuis un programme C a partir de valeurs en tapant

    return Py_BuildValue("[i,i]",vecteur[0],vecteur[1])

    et du coup dans mon programme Python quand je tape vecteur=ma_fonction(parametres)
    vecteur est bien une liste !

    cest ce quil me faut le probleme est que vecteur a 25600 valeurs et je me vois mal taper

    return Py_BuildValue("[i,i,i,i,i,i,i,i,i,i,i,i,i,.......]",vecteur[0],vecteur[1],vecteur[2],vecteur[3],vecteur[4],vecteur[5],......)

    est ce que qqun aurait une solution ?

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Ceci devrait t'aider :
    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
    34
    #include "Python.h"
     
    static PyObject *
    test(PyObject *self, PyObject *args)
    {
        int i, n, ran;
        PyObject *list = PyList_New(0);
     
        if (!PyArg_ParseTuple(args, "i", &n))
            return NULL;
     
        if (n < 1)
            return Py_None;
     
        //srand((int)time(NULL));
     
        for (i=0; i<n; i++) {
            ran = rand() % 100;
            PyList_Append(list, PyInt_FromLong(ran));
        }
     
        return list;
    }
     
    static PyMethodDef example_methods[] = {
        {"test", test, METH_VARARGS, "Retourne une liste"},
        {NULL, NULL}
    };
     
    PyMODINIT_FUNC
    initexample(void)
    {
        Py_InitModule("example", example_methods);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import example
    example.test(100)
    Fichiers attachés Fichiers attachés
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Merci !!! ca marche niquel !! Merci beaucoup, ca fait plus de 4h que je suis dessus et je commencais a craquer !

Discussions similaires

  1. copie d'un vecteur dans une liste
    Par manitor dans le forum Débuter
    Réponses: 4
    Dernier message: 03/07/2009, 08h45
  2. Réponses: 3
    Dernier message: 08/03/2009, 10h50
  3. [Tableaux] Tableau numérique vers liste
    Par jeronimo83 dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2008, 15h57
  4. Que choisir pour une application de "gestion d'une todo liste" ? Python ou Java ?
    Par Yoshidu62 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 10/08/2007, 09h03
  5. [Tableaux] tableau vers liste deroulane
    Par flydragon dans le forum Langage
    Réponses: 5
    Dernier message: 12/04/2006, 16h11

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