[gull] probleme avec python et l'execution d'un programme externe
Christian Kaenzig
christian at becool.ch
Tue Feb 7 23:27:59 CET 2006
Salut,
Le Mardi 7 Février 2006 21:47, Dominique-Georges Branciard a écrit :
> Hello la liste
[...]
> mais c'est vrai que je commence à me plonger dans python
[...]
Alors comme tu dis que tu débutes en Python, je vais me permettre de faire qqs
remarques générales sur le Python. J'espère que ça peut t'être utile et que
c'est pas trop considéré comme du bruit sur la liste...
> alors voila voila mon code
>
> #!/usr/bin/python
> # -*- coding: iso-8859-15 -*-
>
> import os
>
>
> def trcfile(nomfile,rech):
> i = 0
> nc = 0
> while i < len(nomfile):
> if nomfile[i] == rech :
> nc = i
> i = i + 1
> return nc
La première chose, c'est assez stupide, mais ça ne coûterais rien d'utiliser
des identificateurs un peu plus long que nc, rech (i ça va, c'est
standard :). Ca peut faire beaucoup pour comprendre plus rapidement un code !
La deuxième, c'est que cette fonction existe déjà en Python (si j'ai bien
compris ce que ça fait :) :
>>> "un.fichier.ext".rfind(".")
10
> class controle_file:
> file_dir = '/home/ludotheque/reception/'
Là, ce que tu as fait est sûrement temporaire, mais faire une classe juste
pour une variable, c'est pas réellement utile :) !
> def main():
> ctrfile = controle_file()
>
> for fichier in os.listdir(ctrfile.file_dir):
> # print fichier
> nc = trcfile(fichier,'.')
> fichierc = fichier[:nc]
> exten = fichier[nc+1:]
> allextend = '%s' % ctrfile.file_dir + fichierc + ' ' + exten
> print allextend
> try:
> ok = os.execl('cnvimage', 'cnvimage', ctrfile.file_dir + fichierc,
> exten )
Je m'y perd moi-même avec tous ces exec différents, mais comme l'a dit Daniel,
un os.system("cnvimage "+paramètres) va très bien pour ça.
> except:
> print "error: "
> print "OK %s" % ok
Là, ça serait sûrement utile de savoir ce qui se passe comme erreur, au cas où
il y en a une. De plus, tu peux mettre le print "OK" dans un else :
try:
ok = ...
except Exception, message:
print "error : " + message
else:
print "OK " + ok
except Exception veut dire qu'on capture toutes les exception, parce que
toutes les classes d'exceptions dérivent de Exception.
>
> if __name__=="__main__":
> main()
>
> merci de votre aide A+ DG Branciard
Pas de quoi :).
Bye, a+,
Christian
--
Christian Kaenzig
http://chrisk.name/
More information about the gull
mailing list