J'ai besoin d'extraire le nom du répertoire parent d'un certain chemin. Voici à quoi cela ressemble:
c:\stuff\directory_i_need\subdir\file
Je modifie le contenu du "fichier" avec quelque chose qui utilise le directory_i_need
nom (pas le chemin). J'ai créé une fonction qui me donnera une liste de tous les fichiers, puis ...
for path in file_list:
#directory_name = os.path.dirname(path) # this is not what I need, that's why it is commented
directories, files = path.split('\\')
line_replace_add_directory = line_replace + directories
# this is what I want to add in the text, with the directory name at the end
# of the line.
Comment puis je faire ça?
Réponses:
Et vous pouvez continuer à le faire autant de fois que nécessaire ...
Edit: depuis os.path , vous pouvez utiliser soit os.path.split, soit os.path.basename:
la source
Dans Python 3.4, vous pouvez utiliser le module pathlib :
la source
Tout ce dont vous avez besoin est une
parent
pièce si vous l'utilisezpathlib
.Sortira:
Si vous avez besoin de toutes les pièces (déjà couvertes dans d'autres réponses), utilisez
parts
:Ensuite, vous obtiendrez une liste:
Gain de temps.
la source
Tout d'abord, voyez si vous avez
splitunc()
une fonction disponible dansos.path
. Le premier élément retourné doit être ce que vous voulez ... mais je suis sous Linux et je n'ai pas cette fonction lorsque j'importeos
et que j'essaye de l'utiliser.Sinon, une façon semi-laide de faire le travail est d'utiliser:
qui montre la récupération du répertoire juste au-dessus du fichier, et le répertoire juste au-dessus.
la source
Voici ce que j'ai fait pour extraire le morceau du répertoire:
Merci de votre aide.
la source
Cela devrait également faire l'affaire.
la source
Vous devez mettre le chemin complet en paramètre dans os.path.split. Voir les documents . Cela ne fonctionne pas comme le fractionnement de chaîne.
la source