Bonjour tout d'abord, vous devez comprendre les fonctions os.path.abspath (chemin) et os.path.relpath (chemin)
En bref os.path.abspath (path) crée un chemin relatif vers un 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 (chemin) crée un chemin absolu vers un 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 peut vous permettre de comprendre correctement le concept ci-dessus :
supposons que j'ai un fichier input_file_list.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, input_file_list.txt est présent dans le dossier Copyofconc et les fichiers à traiter par le script python sont présents dans le dossier conc
Mais le contenu du fichier input_file_list.txt est le suivant:
.. \ conc \ input1.dic
.. \ conc \ input2.dic
Et mon script python est présent dans D: drive.
Et le chemin relatif fourni dans le fichier input_file_list.txt est relatif au chemin du fichier input_file_list.txt .
Ainsi, lorsque le script python doit exécuter le répertoire de travail actuel (utilisez os.getcwd () pour obtenir le chemin)
Comme mon chemin relatif est relatif à input_file_list.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') , donc le répertoire de travail actuel sera "D: \ Copyofconc" .
Maintenant, pour obtenir les fichiers input1.dic et input2.dic , je vais lire les lignes ".. \ conc \ input1.dic" puis 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 "sera accessible par rapport à" D: \ Copyofconc ")
donc input1_path doit être "D: \ conc \ input1.dic"