Passage de shell script en prog. Python
Fermé
fberruet
Messages postés
4
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
22 août 2008
-
21 août 2008 à 17:55
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 22 août 2008 à 12:29
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 22 août 2008 à 12:29
A voir également:
- Passage de shell script en prog. Python
- Script vidéo youtube - Guide
- Passage qwerty azerty - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Citizen code python avis - Accueil - Outils
- Ghost script - Télécharger - Polices de caractères
8 réponses
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
21 août 2008 à 18:02
21 août 2008 à 18:02
Je suis aussi intéressé par ta question. Python est plus puissant que le shell script il me semble ou bien c'est Perl peut-être.
Désolé de ne pas te donner la réponse, en tout cas elle m'intéresse aussi.
Je pense que je peut quand même te conseiller d'aller faire un tour sur developpez.com pour chercher des FAQ/tutoriaux et autres pour te former.
Un très bon site pour les gens qui sont amenés plus ou moins à développer.
A mon avis l'accès au fichier est tout à fait possible. Ça me parait même évident que c'est le cas.
Désolé de ne pas te donner la réponse, en tout cas elle m'intéresse aussi.
Je pense que je peut quand même te conseiller d'aller faire un tour sur developpez.com pour chercher des FAQ/tutoriaux et autres pour te former.
Un très bon site pour les gens qui sont amenés plus ou moins à développer.
A mon avis l'accès au fichier est tout à fait possible. Ça me parait même évident que c'est le cas.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 août 2008 à 10:50
22 août 2008 à 10:50
Tu pourrais passer des choses en paramètre dans la ligne de commande à ton programme Python.
Python possède des modules pour lire la ligne de commande, comme optparse.
Exemples là: https://sebsauvage.net/python/snyppets/index.html#parsing_cmdline
(optparse et mieux que getopt, quand même)
Python possède des modules pour lire la ligne de commande, comme optparse.
Exemples là: https://sebsauvage.net/python/snyppets/index.html#parsing_cmdline
(optparse et mieux que getopt, quand même)
fberruet
Messages postés
4
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
22 août 2008
22 août 2008 à 11:16
22 août 2008 à 11:16
J'avais pensé à ce genre de solution qui, je suppose, nécessite de devoir dénomber le nombre de paramêtres à devoir passer à Python.
Mon pb est que ce fichier de paramêtre est fortement évolutif et, je suppose, devra nécessiter des modifications, à chaque évolution du fichier de paramêtre, au niveau de l'appel du programme Python.
( qq part mon fichier "paramêtre" correspond aux "include" dans d'autre langages)
A-t-on la possibilité sous Python d'introduire ce genre de données ( connues de l'ensemble des programmes) mais sans être obligé de passer les données en parametres du programme ?
Mon pb est que ce fichier de paramêtre est fortement évolutif et, je suppose, devra nécessiter des modifications, à chaque évolution du fichier de paramêtre, au niveau de l'appel du programme Python.
( qq part mon fichier "paramêtre" correspond aux "include" dans d'autre langages)
A-t-on la possibilité sous Python d'introduire ce genre de données ( connues de l'ensemble des programmes) mais sans être obligé de passer les données en parametres du programme ?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 août 2008 à 11:19
22 août 2008 à 11:19
A-t-on la possibilité sous Python d'introduire ce genre de données ( connues de l'ensemble des programmes) mais sans être obligé de passer les données en parametres du programme ?
On peut très bien créer un fichier de config du genre:
variable1=valeur1
variable2=valeur2
etc.
Et de demande à Python de charger "bêtement" l'intégralité de ces paramètres, même s'il ne connait pas leur signification, et même s'il y en a de nouveaux.
C'est sans problème.
(Y'a même un module pour lire ce genre de fichier.)
On peut très bien créer un fichier de config du genre:
variable1=valeur1
variable2=valeur2
etc.
Et de demande à Python de charger "bêtement" l'intégralité de ces paramètres, même s'il ne connait pas leur signification, et même s'il y en a de nouveaux.
C'est sans problème.
(Y'a même un module pour lire ce genre de fichier.)
fberruet
Messages postés
4
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
22 août 2008
22 août 2008 à 11:34
22 août 2008 à 11:34
Merci.
Je suppose que ce genre de solution n'est pas "parfaite" certes mais elle me permettra, j'espère de passer assez rapidement mes scripts sous Python.
Excuse moi d'insister, mais est-ce que par hasard, tu n'aurais pas un p'tit exemple de ce genre de programme Python ( faisant appel à ce genre de fichier de données)
Cela me permettrait de commencer ?
Merci encore.
Je suppose que ce genre de solution n'est pas "parfaite" certes mais elle me permettra, j'espère de passer assez rapidement mes scripts sous Python.
Excuse moi d'insister, mais est-ce que par hasard, tu n'aurais pas un p'tit exemple de ce genre de programme Python ( faisant appel à ce genre de fichier de données)
Cela me permettrait de commencer ?
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 août 2008 à 11:38
22 août 2008 à 11:38
Je te bricole un exemple d'ici quelques minutes.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 août 2008 à 11:45
22 août 2008 à 11:45
Voilà un exemple.
Si on a un fichier config.ini contenant:
On peut le lire comme ça:
Et il affichera:
Si on a un fichier config.ini contenant:
[sectionA] var1=toto var2=titi homer=simpson [sectionB] var3=kiki var4=roro john=doe
On peut le lire comme ça:
#!/usr/bin/python # -*- coding: iso-8859-1 -*- import ConfigParser config = ConfigParser.SafeConfigParser() config.read("config.ini") for section in config.sections(): print "Dans la section %s" % section for (cle,valeur) in config.items(section): print " La cle %s a comme valeur %s" % (cle,valeur)
Et il affichera:
Dans la section sectionB La cle john a comme valeur doe La cle var3 a comme valeur kiki La cle var4 a comme valeur roro Dans la section sectionA La cle homer a comme valeur simpson La cle var1 a comme valeur toto La cle var2 a comme valeur titi
fberruet
Messages postés
4
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
22 août 2008
22 août 2008 à 12:07
22 août 2008 à 12:07
Merci beaucoup.
Je vais essayer avec mes propres exemples.
Sinon, pour les évolutions futures comment me conseillerais-tu de faire ( en vrai langage python), pour mettre en oeuvre ces aspects de type " include" sachant que me scripts sont essentiellement une succession de commandes "system" ?
Je vais essayer avec mes propres exemples.
Sinon, pour les évolutions futures comment me conseillerais-tu de faire ( en vrai langage python), pour mettre en oeuvre ces aspects de type " include" sachant que me scripts sont essentiellement une succession de commandes "system" ?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 août 2008 à 12:29
22 août 2008 à 12:29
Pas de conseils en particulier.
A toi de choisir une manière d'organiser tout ça.
Je ne peux pas prendre de décision étant donné que je ne connais pas vraiment le problème et son environnement.
os.system() est bien, mais subprocess a des avantages (on se connecter à stdin/stdout/stderr du programme lancé pour "dialoguer" avec lui ou juste récupérer ce qu'il affiche.)
Penser aussi à récupérer le code retour des appels système (généralement: 0=ok, autre=problème).
ça peut être utile, par exemple pour éviter de lancer un traitement si le précédent a foiré.
En fait, ce que tu veux faire, c'est un ordonnanceur: un programme qui va lancer diverses tâches, avec des dépendances entre tâches.
Tu peux effectivement programmer ça toi-même, mais il existe aussi des logiciels spécialsiés dans ce genre de chose.
A toi de choisir une manière d'organiser tout ça.
Je ne peux pas prendre de décision étant donné que je ne connais pas vraiment le problème et son environnement.
os.system() est bien, mais subprocess a des avantages (on se connecter à stdin/stdout/stderr du programme lancé pour "dialoguer" avec lui ou juste récupérer ce qu'il affiche.)
Penser aussi à récupérer le code retour des appels système (généralement: 0=ok, autre=problème).
ça peut être utile, par exemple pour éviter de lancer un traitement si le précédent a foiré.
En fait, ce que tu veux faire, c'est un ordonnanceur: un programme qui va lancer diverses tâches, avec des dépendances entre tâches.
Tu peux effectivement programmer ça toi-même, mais il existe aussi des logiciels spécialsiés dans ce genre de chose.