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?
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?
Réponses:
Les deux fonctions utilisent la os.path.split(path)fonction pour diviser le chemin pathen 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
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
path = '/home/User/Desktop/myfile.py'
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 juste myfile.py), os.path.dirname(path)renvoie une chaîne vide.
itemparitem/, qui est un répertoire, puisos.path.split('foo/bar/item/')renvoie('foo/bar/item', '').