HOWTO · Python
Obtenha o diretório pai em Python
Este tutorial demonstra como obter o diretório pai de um caminho em Python
Nesta página
Este tutorial explicará vários métodos para obter o diretório pai de um caminho em Python. O diretório pai é o diretório diretamente acima do diretório ou arquivo fornecido. Por exemplo, o diretório pai de um caminho C:\folder\subfolder\myfile.txt é C:\folder\subfolder. Cada diretório, exceto a raiz, possui um diretório pai distinto; o diretório pai do diretório raiz é o próprio diretório raiz.
Obter o diretório pai de um caminho com Path.parent
O módulo pathlib representa um caminho como um objeto Path. Sua propriedade parent fornece o pai lógico do caminho, como outro objeto Path; envolva-o em str() se precisar do pai como uma string. Não há nada para chamar e nenhum argumento para passar: você lê a propriedade do Path que construiu.
O código de exemplo abaixo demonstra como usar a propriedade parent para obter o diretório pai de um caminho em Python:
from pathlib import Path
path1 = Path(r"C:\folder\subfolder\myfile.txt")
path2 = Path(r"C:\Myfile.txt")
print(path1.parent)
print(path2.parent)
Saída:
C:\folder\subfolder
C:\
Usar os.pardir com os.path.join()
os.pardir é uma string constante que faz referência ao diretório pai. É '..' no Windows e em sistemas POSIX, incluindo o macOS.
Quando combinamos o caminho fornecido e os.pardir com a função os.path.join() e normalizamos o resultado com os.path.abspath(), obtemos o diretório pai do caminho fornecido.
O código de exemplo abaixo demonstra como usar os.pardir e os.path.join() para obter o diretório pai de um caminho:
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.abspath(os.path.join(path1, os.pardir)))
print(os.path.abspath(os.path.join(path2, os.pardir)))
Saída:
C:\folder\subfolder
C:\
Como mencionado acima, também poderíamos obter o mesmo resultado se substituirmos os.pardir por '..'.
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.abspath(os.path.join(path1, "..")))
print(os.path.abspath(os.path.join(path2, "..")))
Saída:
C:\folder\subfolder
C:\
Obter o diretório pai de um caminho com os.path.dirname()
os.path.dirname() é uma função que recebe uma string de caminho como entrada e retorna a parte do diretório do caminho: tudo até o último separador de caminho. Para um caminho que aponta para um arquivo, essa parte do diretório é o diretório pai, retornado como uma string.
O código de exemplo abaixo demonstra como usar os.path.dirname() para obter o diretório pai de um caminho:
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.dirname(path1))
print(os.path.dirname(path2))
Saída:
C:\folder\subfolder
C:\