Comment puis-je utiliser un fichier dans mon dossier d'application en Python? Plateforme indépendante bien sûr ... quelque chose de similaire à ceci:
#!/bin/sh
mypath=${0%/*}
LIBDIR=$mypath/modules
Vous pouvez utiliser os.path
et ses fonctions, qui prennent en charge les chemins spécifiques au système d'exploitation:
>>> import os
>>> os.path.join('app', 'subdir', 'dir', 'filename.foo')
'app/subdir/dir/filename.foo'
Sous Windows, il devrait s'imprimer avec des barres obliques inverses.
import os
os.path.join(os.path.curdir, 'file.name')
ou
import os
os.path.join(os.path.dirname(__file__), 'file.name')
selon qu'il s'agit d'un module (2) ou d'un seul script (1), et si vous l'invoquez depuis le même répertoire (1), ou d'un autre ((2).
En regardant la "tentative" que vous avez dans votre question, je suppose que vous voudriez (1).
Dans Python 3.4+ vous pouvez utiliser pathlib
:
from pathlib import Path
libdir = Path(__file__).resolve().with_name('modules')
Comment ça marche: l'attribut __file__
Contient le chemin du fichier à partir duquel le module a été chargé. Vous l'utilisez pour initialiser un objet Path
, rendre le chemin absolu à l'aide de la méthode resolve()
et remplacer le composant de chemin final à l'aide de la fonction with_name()
méthode.
__file__
contient l'emplacement du module. Utilisez les fonctions dans os.path
pour en extraire le répertoire.