Preciso extrair o nome do diretório pai de um determinado caminho. Isto é o que parece:
c:\stuff\directory_i_need\subdir\file
Estou modificando o conteúdo do "arquivo" com algo que usa o directory_i_need
nome nele (não o caminho). Eu criei uma função que me dará uma lista de todos os arquivos e, em seguida ...
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.
Como eu posso fazer isso?
Respostas:
E você pode continuar fazendo isso quantas vezes for necessário ...
Editar: do os.path , você pode usar os.path.split ou os.path.basename:
fonte
No Python 3.4, você pode usar o módulo pathlib :
fonte
Tudo que você precisa é
parent
parte, se você usarpathlib
.Saída:
Caso você precise de todas as partes (já abordadas em outras respostas), use
parts
:Então você receberá uma lista:
Economiza tom de tempo.
fonte
Primeiro, veja se você possui
splitunc()
uma função disponívelos.path
. O primeiro item retornado deve ser o que você deseja ... mas estou no Linux e não tenho essa função ao importaros
e tento usá-la.Caso contrário, uma maneira semi-feia de realizar o trabalho é usar:
que mostra a recuperação do diretório logo acima do arquivo e o diretório logo acima dele.
fonte
Isto é o que eu fiz para extrair a parte do diretório:
Obrigado pela ajuda.
fonte
Isso também deve fazer o truque.
fonte
Você deve colocar o caminho inteiro como um parâmetro para os.path.split. Veja os documentos . Não funciona como uma divisão de cadeia.
fonte