Bonjour,

Comment faire pour qu'un code fonctionne correctement chez l'utilisateur ? C'est à dire ne pas avoir à le modifier, j'explique le problème.

J'avais fait le tp Roboc d'open classroom, j'avais spécifié en répertoire de travail courant ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
import os
 
os.chdir("C:/Python/Tp-du-labyrinthe/Labyrinthe/Roboc")
Chez moi le code fonctionnait à merveille, mais chez les utilisateurs de mon programme ce n'était pas le cas puisqu'ils n'étaient pas sur le même répertoire de travail courant que moi.

Le problème c'est que j'ai aussi téléchargé la correction du tp et c'est exactement la même chose que moi, le code ne fonctionnait pas chez moi j'ai du le faire fonctionner en mettant mon propre répertoire de travail courant.

J'ai aussi corrigé trois élèves différents et sur les trois élèves j'ai aussi du modifier le répertoire pour que le code fonctionne.

Dans la correction entre pair on a un critère qui dit que si le code fonctionne comme attendu on met 1 point sinon 0.

Moi j'ai toujours mis 1 point même si je devais juste modifier le répertoire de travail courant car ça m'avait l'air naturelle puisque tout le monde avait fait "l'erreur".

Sauf que les mecs qui m'ont corrigés m'ont toujours dit qu'il fallait utiliser un chemin relatif pour que le code fonctionne chez tout le monde sans avoir à modifier quoi que ce soit. Mais je pose la question, est ce réellement possible de faire ça ?

J'ai enlevé la fonction os.chdir et je constate que mon programme plante alors sur cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for nom_fichier in os.listdir("cartes"):
 
    print(nom_fichier)
 
FileNotFoundError: [WinError 3] Le chemin d'accès spécifié est introuvable: 'cartes'
Je pourrais utiliser un chemin absolu mais ça ne fonctionnera alors que chez moi et non chez les utilisateurs.

Comment faire pour que ça fonctionne chez tout le monde de la même manière sans que les gens soient obligés de modifier mon code ???

Je constate que le code suivant fonctionne parfaitement :

C'est bien la preuve que le dossier cartes contenu dans le même dossier que mon fichier que j'exécute est bien trouvé.