Saltar al contenido

python

Obtener el nombre de un archivo en Python

Aprende cómo obtener el nombre de un archivo en Python a partir de una ruta dada. Aprende también cómo obtener la extensión de un fichero.

Cómo obtener el nombre de un archivo en Python

Manipular nombres de ficheros y directorios es una tarea muy común en muchas aplicaciones. Por ejemplo, para listar los ficheros de un directorio, navegar entre carpetas, … En este post aprenderás cómo obtener el nombre de un archivo en Python dada una ruta.

Para ello, haremos uso del módulo os.path. Este módulo, que pertenece a la librería estándar de Python, ofrece funciones de utilidad para manipular nombres de rutas del sistema operativo.

Cómo obtener el nombre de un archivo a partir de una ruta

Imaginemos que tenemos la siguiente ruta: /Users/Juanjo/workspace/j2logo/pruebas.txt para obtener el nombre del fichero, pruebas.txt, llamaremos a la función split() del módulo os.path:

>>> import os

>>> ruta = '/Users/Juanjo/workspace/j2logo/pruebas.txt'
>>> os.path.split(ruta)
('/Users/Juanjo/workspace/j2logo', 'pruebas.txt')

Como puedes apreciar, esta función devuelve dos valores. El primero de ellos es el directorio en el que se encuentra el fichero, mientras que el segundo, es el nombre del propio archivo.

Realmente, la función split() divide el nombre de una ruta en dos: cabeza y cola. El primer valor devuelto siempre es la cabeza y el segundo la cola. Esto lo hace en función de dónde encuentre el último carácter /. La parte de la cola nunca contendrá un carácter /. Si la ruta termina en una barra inclinada, la cola estará vacía. Si no hay una barra en la ruta, la cabeza estará vacía. Veámoslo con un ejemplo:

>>> import os

# La ruta acaba en /
>>> ruta = '/Users/Juanjo/workspace/j2logo/'
>>> os.path.split(ruta)
('/Users/Juanjo/workspace/j2logo', '')

# No hay carácter / en la ruta
>>> ruta = 'pruebas.txt'
>>> os.path.split(ruta)
('', 'pruebas.txt')

Obtener la extensión de un fichero

Otra función de utilidad del módulo os.path para manipular nombres de fichero es splitext(). Esta función la podemos usar para separar el nombre de un fichero en dos: el propio nombre y su extensión.

>>> import os

>>> ruta = 'pruebas.txt'
>>> os.path.splitext(ruta)
('pruebas', '.txt')

La función divide una ruta a partir de encontrar el carácter . y devuelve una raíz y una extensión (que comienza con el carácter .). Si la ruta comienza por el carácter . y no hubiera ningún punto más, entonces la extensión se devuelve vacía.

>>> import os

# Ruta que comienza con . y solo hay ese
>>> ruta = '.pruebas'
>>> os.path.splitext(ruta)
('.pruebas', '')

# Ruta con varios puntos
>>> ruta = 'pruebas.old.txt'
>>> os.path.splitext(ruta)
('pruebas.old', '.txt')

Newsletter EstrategIA

Programar con IA sin perder el control

Si te ha interesado este artículo, esto también te va a interesar. Cada dos martes te cuento qué funciona y qué no al construir software con agentes de IA, con ejemplos reales de mi software factory y los números de mis proyectos, sin maquillar.

9.277 desarrolladores y profesionales ya la leen martes quincenales

EstrategIA Próximo número · martes

Lo que recibes

  1. Qué funciona (y qué no) programando con agentes de IA
  2. Casos reales de MaIA y DGC: decisiones, errores y resultados
  3. Los números de mis proyectos, sin maquillar
  4. Una idea que puedes aplicar esa misma semana

Sin spam. Te das de baja con un clic.

j2logo

Sigue leyendo

Listar directorio en Python
python

Listar directorio en Python. Listar ficheros de un directorio

requests - Hacer peticiones http en Python
python

Python requests. La librería para hacer peticiones http en Python

Web scraping con Python. Guía de inicio a BeautifulSoup
python

Web scraping con Python. Extraer datos de una web. Guía de inicio de Beautiful Soup

Tutorial de SQLAlchemy
python

SQLAlchemy. Tutorial de Python SQLAlchemy. Guía de inicio