Python flux dans le terminal

Fermé
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 - 2 mai 2011 à 14:38
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 - 4 mai 2011 à 20:57
Bonjour à tous,

Voila j'aimerai savoir, si c'est possible, comment récupérer le flux d'un script dans le terminal d'ubuntu et s'en servir dans un script python, avec "sys.argv".

Par exemple ici:
echo test | wc

la commande "wc" s'applique sur le flux de sortie "test" affiché par la commande "echo",
Moi j'aimerai récupérer ce flux dans les arguments de mon script python afin de travailler sur cette sortie, comme par exemple:
python script1.py | python script2
Est-ce possible?

Merci.

A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
2 mai 2011 à 14:48
Salut,

Je suppose qu'en mettant un shebang approprié dans tes scripts python, en les rendant exécutables par la suite et en les lançant comme suit :

./script1.py | ./script2.py

Ça devrait le faire, non ?

0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
2 mai 2011 à 15:17
Non je n'arrive pas à récupérer ce que j'affiche avec le premier en argument sur le second :(... Une autre idée? Peut-être y-a-t'il un autre moyen?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
2 mai 2011 à 15:23
Es-tu sûr de ta syntaxe en python ?
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
Modifié par nemolovich le 2/05/2011 à 16:02
Oui, le programme fonctionne si je met en os.system() les paramètres en argument. Mais exemple tout bete:
#!/usr/bin/env python 

import sys 

if len(sys.argv)>1: 
 print sys.argv[1] 
else: 
 print "No Argv"


ce code par exemple, si je l'utilise comme suit:
./test.py test1| ./test.py

Il me dit qu'il n'y a aucun argument, or c'est là que j'aimerai les récupérer...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
2 mai 2011 à 15:58
Là c'est plus un problème de syntaxe python qu'un simple problème d'entrée/sortie en shell ;-((

On va basculer sur le forum programmation ;-)
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
2 mai 2011 à 16:04
Ok d'acc!

Peut-etre est-il récupéré ailleurs que dans le sys.argv?? Dans ce cas dans quoi?
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
4 mai 2011 à 20:57
Up,

Personne n'aurait d'autres idées?

Merci
0