bonjour,
comment on peut faire pour eviter d'avoir des chemins dans nos programme python(ex: chemin pr acceder à un fichier, ou un executable...) de sorte de notre programme sout réutilisable sur n'importe quel ordinateur.
merci pour vos réponse
bonjour,
comment on peut faire pour eviter d'avoir des chemins dans nos programme python(ex: chemin pr acceder à un fichier, ou un executable...) de sorte de notre programme sout réutilisable sur n'importe quel ordinateur.
merci pour vos réponse
Utiliser le code signifiant que le chemin indiqué se fait depuis le répertoir courant (celui d'où on a executé le script). Par exemple, dison que l'on à un script python (test.py) dans le répertoire d:/programme/monProg/programs
un autre script python (lanceur.py) qui se charge de lancer test.py, ce script se trouve dans d:/programmes/monProg/
voici l'arborescence du dossier monProg:
voici Test.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 monProg programs data
et voici lanceur.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part print file('./data/exemple.txt').read()
Maintenant lançons lanceur.py, il va rechercher test.py dans le dossier programs, et grâce au './', il sait que ce dossier se trouve dans celui où on a lancé le programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 import os os.system('python ./programs/test.py')
Donc il lance test.py, test.py, va essayer de lire exemple.txt, qui se trouve dans le dossier data depuis le répertoire courant (d:/programmes/monProg/), et fini par afficher le contenu de exemple.txt...
Mais par contre si on tente de lancer directement test.py depuis son dossier (d:/programmes/monProg/programs/), ça ne fonctionnera pas puisqu'alors, le répertoire courant sera 'd:/programmes/monProg/programs/' et qu'il n'y a pas de repertoire data dans ce dossier...
Voilà voilààà...![]()
Bonjour,
Solutions complémentaires:
Chemin complet du fichier toto se trouvant dans le répertoire du programme .py qui s'exécute:
Chemin complet du fichier toto se trouvant dans le répertoire courant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 import os import sys chemin = os.path.dirname(sys.argv[0]) + os.sep + "toto"
C'est important d'utiliser os.sep qui se traduira par le bon séparateur ('/', '\') en fonction de l'OS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 import os chemin = os.getcwd() + os.sep + "toto"
Tyrtamos
j'avoue que j'ai pas trés bien compri les deux propositions.mais j'ai comme même essayé sauf que ça ne reconanit aucun chemin et cu coup ça n'excute pas mes programmes.
ce que je veux faire, c'est rendre mon programme réutilisable sur n'importe quel ordi, car les chemin sutulisés son les miens, il ya tjrs mon nom de repertoire marqué dessus.
Bonjour,
Je ne sais pas ce que tu as fait pour "essayer", mais j'utilise couramment ce que je t'ai donné, et je t'assure que ça marche sur Windows et sur Linux.
Tyrtamos
Partager