Quelle est la différence entre os.path.basename()
et os.path.dirname()
?
J'ai déjà cherché des réponses et lu quelques liens, mais je n'ai pas compris. Quelqu'un peut-il donner une explication simple?
Les deux fonctions utilisent la os.path.split(path)
fonction pour diviser le chemin path
en une paire; (head, tail)
.
La os.path.dirname(path)
fonction renvoie la tête du chemin.
Par exemple: le nom du répertoire '/foo/bar/item'
est '/foo/bar'
.
La os.path.basename(path)
fonction renvoie la queue du chemin.
Par exemple: le nom de base des '/foo/bar/item'
retours'item'
De: http://docs.python.org/2/library/os.path.html#os.path.basename
item
paritem/
, qui est un répertoire, puisos.path.split('foo/bar/item/')
renvoie('foo/bar/item', '')
.os.path.basename(os.path.dirname(path))
'foo.bar'
et os.path.dirname (nom_fichier) retourne une chaîne vide:''
.Pour résumer ce qui a été mentionné par Breno ci-dessus
Disons que vous avez une variable avec un chemin vers un fichier
os.path.basename(path)
renvoie la chaîne'myfile.py'
et
os.path.dirname(path)
renvoie la chaîne'/home/User/Desktop'
(sans barre oblique finale '/')Ces fonctions sont utilisées lorsque vous devez obtenir le nom de fichier / nom de répertoire avec un nom de chemin complet.
Dans le cas où le chemin du fichier est juste le nom du fichier (par exemple au lieu de
path = '/home/User/Desktop/myfile.py'
ce que vous avez justemyfile.py
),os.path.dirname(path)
renvoie une chaîne vide.la source