Bonjour, tout d'abord, vous devez comprendre les fonctions os.path.abspath(path) et os.path.relpath(path)
En bref os.path.abspath(path) fait un chemin relatif à chemin absolu . Et si le chemin fourni est lui-même un chemin absolu, la fonction renvoie le même chemin.
de même os.path.relpath(path) fait un chemin absolu à chemin relatif . Et si le chemin fourni est lui-même un chemin relatif, la fonction renvoie le même chemin.
L'exemple ci-dessous vous permettra de bien comprendre le concept ci-dessus. :
Supposons que j'ai un fichier liste_de_fichiers_d'entrée.txt qui contient la liste des fichiers d'entrée à traiter par mon script python.
D:\conc\input1.dic
D:\conc\input2.dic
D:\Copyioconc\input_file_list.txt
Si vous voyez la structure du dossier ci-dessus, liste_de_fichiers_d'entrée.txt est présent dans Copie de l'accord et les fichiers à traiter par le script python sont présents dans le dossier conc dossier
Mais le contenu du fichier liste_de_fichiers_d'entrée.txt est comme indiqué ci-dessous :
.. \conc\input1.dic
.. \conc\input2.dic
Et mon python script est présent dans D : conduire.
Et le chemin relatif fourni dans le liste_de_fichiers_d'entrée.txt sont relatifs au chemin du fichier liste_de_fichiers_d'entrée.txt fichier.
Ainsi, lorsque python script sera exécuté le répertoire de travail courant (utiliser os.getcwd() pour obtenir le chemin)
Comme mon chemin relatif est relatif à liste_de_fichiers_d'entrée.txt c'est-à-dire " D:\Copyofconc " je dois changer le répertoire de travail actuel en " D:\Copyofconc " .
Je dois donc utiliser os.chdir(' D:\Copyofconc ') Le répertoire de travail actuel sera donc " D:\Copyofconc " .
Maintenant, pour obtenir les fichiers input1.dic et input2.dic je vais lire les lignes \conc\input1.dic ", il faut alors utiliser la commande
input1_path= os.path.abspath(' \conc\input1.dic ') (pour changer le chemin relatif en chemin absolu. Ici, le répertoire de travail actuel est " D:\Copyofconc ", le fichier " . \conc\input1.dic " est accessible par rapport à " D:\Copyofconc ")
donc chemin d'entrée 1 est " D:\conc\input1.dic "
1 votes
Questions similaires : stackoverflow.com/questions/51520/ stackoverflow.com/questions/7165749/ stackoverflow.com/questions/3561691/