Qual é a diferença entre os.path.basename()
e os.path.dirname()
?
Eu já procurei respostas e li alguns links, mas não entendi. Alguém pode dar uma explicação simples?
Ambas as funções usam a os.path.split(path)
função para dividir o nome do caminho path
em um par; (head, tail)
.
A os.path.dirname(path)
função retorna o início do caminho.
Por exemplo: O nome do diretório de '/foo/bar/item'
é '/foo/bar'
.
A os.path.basename(path)
função retorna a cauda do caminho.
Por exemplo: o nome base dos '/foo/bar/item'
retornos'item'
De: http://docs.python.org/2/library/os.path.html#os.path.basename
item
poritem/
, que é um diretório,os.path.split('foo/bar/item/')
retornará('foo/bar/item', '')
.os.path.basename(os.path.dirname(path))
'foo.bar'
e os.path.dirname (file_name) retorna uma string vazia:''
.Para resumir o que foi mencionado por Breno acima
Digamos que você tenha uma variável com um caminho para um arquivo
os.path.basename(path)
retorna a string'myfile.py'
e
os.path.dirname(path)
retorna a string'/home/User/Desktop'
(sem uma barra final '/')Essas funções são usadas quando você precisa obter o nome do arquivo / diretório com um nome completo do caminho.
Caso o caminho do arquivo seja apenas o nome do arquivo (por exemplo, em vez de
path = '/home/User/Desktop/myfile.py'
você apenas termyfile.py
),os.path.dirname(path)
retorna uma string vazia.fonte