Python os module ouvre le fichier au-dessus du répertoire courant avec le chemin relatif
La documentation du module OS ne semble pas avoir d'informations sur la façon d'ouvrir un fichier qui n'est pas dans un sous-répertoire ou du répertoire que le script s'exécute sans chemin d'accès complet. Mon répertoire de la structure ressemble à ceci.
/home/matt/project/dir1/cgi-bin/script.py
/home/matt/project/fileIwantToOpen.txt
open("../../fileIwantToOpen.txt","r")
Donne un fichier ne trouve pas d'erreur. Mais si je lance un interpréteur python dans le répertoire cgi-bin et essayer open("../../fileIwantToOpen.txt","r")
il fonctionne. Je ne veux pas coder en dur dans le chemin d'accès complet pour d'évidentes raisons de portabilité. Est-il un ensemble de méthodes dans le module OS que PEUT faire cela?
source d'informationauteur Matt Phillips
Vous devez vous connecter pour publier un commentaire.
Le chemin d'accès donné à
open
doit être relatif au répertoire de travail courant, le répertoire à partir duquel vous exécutez le script. Ainsi l'exemple ci-dessus ne fonctionnera que si vous l'exécutez à partir du répertoire cgi-bin.Une solution simple serait de faire votre chemin relatif au script. Une solution possible.
Cette façon, vous obtiendrez le chemin d'accès du script que vous êtes en cours d'exécution (basepath) et rejoindre le chemin relatif du fichier que vous souhaitez ouvrir.
os.path
va prendre soin de tous les détails de joindre les deux chemins.Cela devrait vous permettre de vous déplacer dans le répertoire où se trouve le script, si vous n'y êtes pas déjà: