Obter extensão de ficheiros em Python
-
Utilize o módulo
os.path
para extrair a extensão de um ficheiro em Python -
Utilizar o módulo
pathlib
para extrair a extensão do ficheiro em Python
Este tutorial irá introduzir como obter a extensão do ficheiro a partir do nome do ficheiro em Python.
Utilize o módulo os.path
para extrair a extensão de um ficheiro em Python
Python tem um módulo os.path
que tem funções utilitárias úteis pré-fabricadas para manipular caminhos de ficheiros de SO. Inclui abrir, guardar e actualizar, e obter a informação a partir de caminhos de ficheiros.
Vamos utilizar este módulo para obter a extensão do ficheiro em Python.
O os.path
tem uma função splitext()
para dividir a raiz e a extensão do caminho do ficheiro dado. A função retorna um tuple contendo a raiz e a extensão da string de extensão.
Vamos fornecer um exemplo de caminho de ficheiro com uma extensão docx
.
/Users/user/Documents/sampledoc.docx
O resultado esperado deve ser a extensão .docx
.
Declare duas variáveis separadas para capturar o resultado de splitext()
denominado extension
e root
.
import os
path = "/Users/user/Documents/sampledoc.docx"
root, extension = os.path.splitext(path)
print("Root:", root)
print("extension:", extension)
Resultado:
Root: /Users/user/Documents/sampledoc
Extension: .docx
A extensão foi agora devolvida com sucesso ted do caminho do ficheiro raiz.
Utilizar o módulo pathlib
para extrair a extensão do ficheiro em Python
pathlib
é um módulo Python que contém classes que representam caminhos de ficheiros e implementa funções utilitárias e constantes para estas classes.
pathlib.Path()
aceita uma string de caminhos como argumento e devolve um novo objecto Path
.
O objecto pathlib.Path
tem o atributo suffix
que retorna a informação da extensão do ficheiro.
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", path.suffix)
Para além da raiz, podemos também obter o caminho do ficheiro pai e o nome do ficheiro real do caminho do ficheiro dado, simplesmente chamando os atributos parent
e name
dentro do objecto Path
.
Resultado:
Parent: /Users/user/Documents
Filename: sampledoc.docx
Extension: .docx
E se tivermos uma extensão de ficheiro como .tar.gz
ou .tar.bz2
?
O pathlib
também fornece um atributo para ficheiros com múltiplos sufixos como extensões. O atributo suffixes
dentro do objecto Path
é uma lista que contém todos os sufixos do ficheiro em questão. Se utilizarmos o exemplo acima e imprimirmos o atributo suffixes
:
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Suffix(es):", path.suffixes)
Resultado:
Suffix(es): ['.docx']
Assim, mesmo que exista apenas um sufixo, a saída resultará numa lista de um único botão.
Agora tente um exemplo com uma extensão .tar.gz
. Para converter a lista numa única string, a função join()
pode ser utilizada numa string vazia e aceitar o atributo suffixes
como argumento.
import pathlib
path = pathlib.Path("/Users/user/Documents/app_sample.tar.gz")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", "".join(path.suffixes))
Resultado:
Parent: /Users/user/Documents
Filename: app_sample.tar.gz
Extension: .tar.gz
Agora a extensão real é exibida em vez de uma lista.
Em resumo, os dois módulos os
e pathlib
fornecem métodos convenientes para obter a extensão do ficheiro a partir de um caminho de ficheiro em Python.
O módulo os
tem a função splitext
para dividir a raiz e o nome do ficheiro a partir da extensão do ficheiro. O pathlib
cria um objecto Path
e simplesmente armazena a extensão dentro do atributo suffix
.
Se estiver a antecipar mais do que uma extensão num ficheiro, seria melhor utilizar pathlib
, uma vez que fornece um suporte fácil para múltiplas extensões utilizando o atributo suffixes
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArtigo relacionado - Python File
- Como obter todos os arquivos de um diretório
- Como Anexar Texto a um Arquivo em Python
- Como verificar se um arquivo existe em Python
- Como encontrar ficheiros com uma certa extensão apenas em Python
- Como ler linhas específicas a partir de um arquivo em Python
- Gravar linha por linha em um arquivo usando Python