Je voudrais obtenir uniquement le chemin du dossier à partir du chemin complet vers un fichier.
Par exemple T:\Data\DBDesign\DBDesign_93_v141b.mdb
et je voudrais obtenir juste T:\Data\DBDesign
(à l'exclusion du \DBDesign_93_v141b.mdb
).
J'ai essayé quelque chose comme ça:
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr
mais cela m'a donné un résultat comme celui-ci:
['T:', 'Data', 'DBDesign']
ce qui n'est pas le résultat que j'exige (être T:\Data\DBDesign
).
Des idées sur la façon dont je peux obtenir le chemin de mon fichier?
os.sep.join(existGDBPath.split(os.sep)[:-1]
semble plus jolie.AVEC MODULE PATHLIB (RÉPONSE MIS À JOUR)
Il faut envisager d'utiliser pathlib pour les nouveaux développements. Il se trouve dans le stdlib pour Python3.4, mais disponible sur PyPI pour les versions antérieures. Cette bibliothèque fournit une méthode plus orientée objet pour manipuler les chemins
<opinion>
et est beaucoup plus facile à lire et à programmer avec</opinion>
.AVEC MODULE OS
Utilisez le module os.path :
Vous pouvez continuer et supposer que si vous avez besoin de faire une sorte de manipulation de nom de fichier, elle a déjà été implémentée dans
os.path
. Sinon, vous devrez probablement utiliser ce module comme bloc de construction.la source
Path().parent
ce que je cherchais!Le sous-module intégré os.path a une fonction pour cette tâche.
la source
Voici le code:
la source
Voici mon petit utilitaire d'aide pour diviser les chemins int, les jetons de chemin:
la source
Toute personne essayant de le faire dans l'interface de calcul de champ ESRI GIS Table peut le faire avec l' analyseur Python :
PathToContainingFolder =
pour que
\ Users \ me \ Desktop \ Nouveau dossier \ file.txt
devient
\ Users \ me \ Desktop \ Nouveau dossier
la source