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 :

Réaliser un pipeline entre differents programmes sous Python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut Réaliser un pipeline entre differents programmes sous Python
    Bonjour à tous;

    Alors voilà mon problème j'utilise dans le cadre de mon travail scientifique différents programmes de filtrations et d'interprétations de données brutes, mais voila le processus complet d'analyse demande d'utiliser ses différents scripts les uns après les autres en utilisant à chaque fois les donnes sortantes du programme précédent . Pour faire cela j'utilise habituellement le terminal sous Ubuntu afin de lancer différents scripts préparés à l'avance.

    Ce que j'aimerais c'est réaliser un pipeline entre ses différents programmes avec Python (réaliser un script qui permettrait automatiquement de prendre les fichiers de sortie d'un programme et de lancer dessus le deuxième script etc...)
    Auriez-vous des idées de scripts ou de commandes permettant de faire cela?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 303
    Par défaut
    Salut,

    subprocess.Popen devrait faire l'affaire.

    Si il s'agit simplement de données retournées par un script et assimilables à du texte, aucun problème.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    Merci de ta réponse rapide : P

    Les fichiers sortants peuvent être de différentes natures selon le script lancé mais globalement il s'agit de texte que l'on peut ouvrir éditer etc qui se présentent sous cette forme, et ça sur des milliers de lignes .

    @HWI-ST1213: 141: C17 PWACXX: 6: 1101: 1520: 1977 2: N: 0: CTTGTA
    CTCTATTCTCGCATCCTTGTCCACCTTCCAACAGATGTGGATCTCAAAGCAAGAATACGACGAATCTGGCCCCGGAATCG
    TTCACAGGAAATGCTTTTAA
    CCCFFFFFHHHHHJJJJJIJJJIJJJJJJJJJJJJJIGHIJIJIIIJJIJGIJJJJJJJJJJHHHFFFFFFDDBDDB? CD
    AABDCDCB@BDCDDDEDDCD @HWI-ST1213: 141: C17 PWACXX: 6: 1101: 2023: 1993 2: N: 0: CTTGTA
    TGGCCATGCCTCCCCAAAAGGCACCAAGAAAAGTGAAAAACTTAGCAATCTTGGATTCTTCTTTCGCGAAGATGACACAT
    ACACCAATGACTTTAAATTA

    Je vais essayer de creuser du coté des subprocess popen comme tu me le suggère. les scripts que je lance les uns après les autres sont surtout des scripts PBS.

  4. #4
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Bonjour

    Tu utilises le teme pipeline mais décris une suite d'opérations qui ne relèvent pas de l'utilisation des pipe(line)s Unix.

    C'est un abus de langage ? ou as-tu en tête de, réellement, utiliser les pipes ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    Je pense qu'il sagit plus d'un abus de language. Dans mon domaine on utilise le terme pipeline plutôt pour désigner un moyen d'enchainer dans un ordre précis différents processus (Dans mon cas le processus précédant doit être fini avant que le processus suivant ne s'enclenche, ce que je fais manuellement habituellement) Mais je ne pense pas particulièrement utiliser les fonctions "pipe

  6. #6
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Le choix du terme est vraiment très malheureux (surtout dans un contexte Linux/Ubuntu) mais bon ...

    Sinon, le contenu et le format de tes différents fichiers importent peu : des scripts existants s'en occupent. Tu dois juste - si j'ai bien compris - les enchainer, un peu comme tu le fais sous Terminal.

    La plus value de Python ne va pas être monstrueuse par rapport à un shell script qui reprendrait les commandes que tu lances séquentiellement à la main. Tu peux (peut-être) y gagner si tu as à construire les noms de tes fichiers et éviter ainsi l'utilisation de commandes un tantinet cabalistiques comme grep, awk, sed, ... pour manipuler des chaines de caractères.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Par défaut
    Je suis bien d'accord avec toi

    C'est exactement ça, je cherche avec un script python a justement éviter de devoir éditer les différents scripts notamment pour changer le nom du fichier entrant selon l'analyse qui sera faite et ainsi éviter autant de risque de plantages. Je cherche aussi avec pyGTK à réaliser un GUI vraiment basique afin de sélectionner en naviguant dans les fichiers le fichier entrant ce qui éditerai automatiquement les scripts avec le nom du fichier sélectionné avec GTK.

    En gros pour vous faire un schéma:

    Imaginons j'ai deux fichiers d'entrée qui sont différents selon les analyses (R1_projet1 et R2_projet1) (R1_projet2 et R2_projet2) etc.

    Et bien je cherche à ce que je puisse sélectionner R1_projet1 et R2_projet1 avec pyGTK, que cette sélection modifie le premier script au niveau du "input filename", que ses deux fichiers soient rassemblés en un seul fichier par le script1. Puis que le fichier sortant du script1 portant un nom générique genre "output script1" soit pris en charge par le script2 pour d´autres analyses etc jusqu'à l'output final, tout en gardant une copie des fichiers output à chaques étapes.
    mais étant plutôt néophyte dans le language python je m'y perds.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Par défaut
    Vous devriez alors entrer dans le domaine des coroutines (= pipelines en Python)


  9. #9
    Membre très actif

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 349
    Par défaut
    Je te conseil d'utiliser la lib bein pour ce genre de travail en python https://github.com/bbcf/bein

Discussions similaires

  1. Réaliser un programme sous la console sous linux
    Par Charlock dans le forum C++
    Réponses: 5
    Dernier message: 22/11/2009, 18h56
  2. Premier programme sous Python
    Par Helios07 dans le forum Général Python
    Réponses: 6
    Dernier message: 06/06/2008, 10h33
  3. programmer en python sous windows avec emacs
    Par Mydriaze dans le forum Général Python
    Réponses: 5
    Dernier message: 24/09/2007, 22h01
  4. Réponses: 1
    Dernier message: 16/04/2007, 13h56
  5. Entrée d'un sous programme
    Par ecthelion dans le forum Langage
    Réponses: 5
    Dernier message: 12/03/2007, 22h05

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