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?
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?
Respostas:
Ambas as funções usam a os.path.split(path)função para dividir o nome do caminho pathem 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
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
path = '/home/User/Desktop/myfile.py'
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 ter myfile.py), os.path.dirname(path)retorna uma string vazia.
itemporitem/, que é um diretório,os.path.split('foo/bar/item/')retornará('foo/bar/item', '').