Obtener la extensión del archivo en Python
-
Utiliza el módulo
os.path
para extraer la extensión del archivo en Python -
Usa el módulo
pathlib
para extraer la extensión del archivo en Python
Este tutorial introduce cómo obtener la extensión del archivo a partir del nombre de archivo en Python.
Utiliza el módulo os.path
para extraer la extensión del archivo en Python
Python tiene un módulo os.path
que tiene funciones de utilidad preestablecidas para manipular las rutas de los archivos del sistema operativo. Incluye abrir, guardar y actualizar, y obtener la información de las rutas de los archivos.
Usaremos este módulo para obtener la extensión del archivo en Python.
os.path
tiene una función splitext()
para dividir la raíz y la extensión del camino de archivo dado. La función devuelve una tupla que contiene la cadena de la raíz y la cadena de la extensión.
Proporcionemos un ejemplo de ruta de archivo con una extensión docx
.
/Users/user/Documents/sampledoc.docx
La salida esperada debería ser la extensión .docx
.
Declare dos variables separadas para obtener el resultado de splitext()
llamado extension
y 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
La extensión ha sido devuelta con éxito a ted desde la ruta del archivo raíz.
Usa el módulo pathlib
para extraer la extensión del archivo en Python
pathlib
es un módulo de Python que contiene clases que representan rutas de archivos e implementa funciones y constantes de utilidad para estas clases.
pathlib.Path()
acepta una cadena de rutas como argumento y devuelve un nuevo objeto Path
.
El objeto pathlib.Path
tiene el atributo suffix
que devuelve la información de la extensión del archivo.
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", path.suffix)
Aparte de la raíz, también podemos obtener la ruta del archivo padre y el nombre real del archivo de la ruta dada, simplemente llamando a los atributos parent
y name
dentro del objeto Path
.
Resultado:
Parent: /Users/user/Documents
Filename: sampledoc.docx
Extension: .docx
¿Qué pasa si tenemos una extensión de archivo como .tar.gz
o .tar.bz2
?
pathlib
también proporciona un atributo para archivos con múltiples sufijos como extensiones. El atributo suffixes
dentro del objeto Path
es una lista que contiene todos los sufijos del archivo dado. Si usamos el ejemplo anterior e imprimimos el atributo suffixes
:
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Suffix(es):", path.suffixes)
Resultado:
Suffix(es): ['.docx']
Entonces, incluso si sólo hay un sufijo, la salida resultará en una lista de un solo botón.
Ahora prueba un ejemplo con una extensión .tar.gz
. Para convertir la lista en una sola cadena, la función join()
puede usarse en una cadena vacía y aceptar el 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
Ahora se muestra la extensión real en lugar de una lista.
En resumen, los dos módulos os
y pathlib
proveen métodos convenientes para obtener la extensión del archivo de una ruta de archivo en Python.
El módulo os
tiene la función splitext
para separar la raíz y el nombre del archivo de la extensión del mismo. pathlib
crea un objeto Path
y simplemente almacena la extensión dentro del atributo suffixes
.
Si estás anticipando más de una extensión en un archivo, sería mejor usar pathlib
ya que provee un fácil soporte para múltiples extensiones usando el 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.
LinkedIn