1. ¿Qué es os.path.basename()?
La os.path.basename()
de Python es una función que obtiene la parte del «nombre de archivo» de la ruta de archivo especificada. Por ejemplo, si se le da una ruta como «/home/user/documents/file.txt», os.path.basename()
devuelve «file.txt». Esta función puede usarse en diversos escenarios como una herramienta de manipulación de archivos multiplataforma que funciona en diferentes sistemas operativos.
Resumen de os.path.basename()
os.path.basename() es una función del módulo os
que permite extraer el último elemento de una ruta de archivo (normalmente el nombre del archivo). Esta funcionalidad es útil cuando se desea obtener solo el nombre del archivo mientras se utiliza la ruta completa.
Ejemplo básico de uso
import os
file_path = "/home/user/documents/report.pdf"
file_name = os.path.basename(file_path)
print(file_name) # Salida: report.pdf
En este código se extrae el nombre de archivo «report.pdf» de la ruta de archivo especificada. Es utilizado en muchos escenarios, desde principiantes en Python hasta profesionales.
2. Cómo usar os.path.basename()
A continuación, explicaremos cómo usar realmente os.path.basename()
y los patrones de uso habituales.
Cómo obtener el nombre de archivo a partir de una ruta de archivo
Si se pasa una ruta completa a os.path.basename()
, devuelve el nombre del archivo al final de la ruta. Como se puede obtener el nombre del archivo incluyendo la extensión, se puede mostrar directamente o utilizarlo en otros procesos.
Código de ejemplo
import os
file_path = "/home/user/documents/report.pdf"
file_name = os.path.basename(file_path)
print(file_name) # Salida: report.pdf
Cómo obtener el nombre del directorio a partir de una ruta de directorio
Si se pasa una ruta de directorio (en lugar de una ruta de archivo) a os.path.basename()
, se devuelve el nombre del directorio, que es el último elemento. En el siguiente ejemplo, se devuelve ‘documents’ a partir de ‘/home/user/documents/’.
Código de ejemplo
import os
dir_path = "/home/user/documents/"
directory_name = os.path.basename(dir_path)
print(directory_name) # Salida: documents
Obtener el nombre de archivo con extensión
os.path.basename()
devuelve el nombre del archivo incluyendo su extensión. Al poder obtener el nombre del archivo sin verificar la presencia de una extensión, es simple y práctico.
Código de ejemplo
import os
file_path = "/path/to/data/file.csv"
file_name_with_extension = os.path.basename(file_path)
print(file_name_with_extension) # Salida: file.csv

3. Comprender las diferencias de os.path.basename() con otras funciones relacionadas
os.path
El módulo, además de basename()
, tiene varias funciones útiles para la manipulación de rutas. A continuación, comparemos con los os.path.dirname()
, os.path.split()
y os.path.splitext()
más usados.
Diferencias con os.path.dirname()
os.path.dirname()
obtiene la ruta del directorio, mientras queos.path.basename()
obtiene el nombre del archivo.
Diferencias con os.path.split()
os.path.split()
puede obtener simultáneamente la ruta del directorio y el nombre del archivo.
Combinación con os.path.splitext()
- Al usar
os.path.splitext()
, se puede eliminar fácilmente la extensión del nombre del archivo.
4. Obtener nombres de archivo con pathlib de forma más sencilla
Python 3.4 en adelante, el módulo pathlib
para la manipulación de rutas de archivo se ha estandarizado. Es más intuitivo que os.path
y es muy útil para proyectos donde la legibilidad es especialmente importante.
Uso de pathlib.Path.name
from pathlib import Path
file_path = Path("/home/user/documents/report.pdf")
print(file_path.name) # Output: report.pdf
Al usar pathlib.Path.name
, se puede obtener el nombre del archivo fácilmente y realizar operaciones equivalentes a basename()
de manera orientada a objetos.

5. Ejemplos de uso real
En proyectos reales, veamos cómo se está utilizando os.path.basename()
mediante los siguientes ejemplos.
Renombrado de nombres de archivo
import os
directory = "/path/to/files"
new_prefix = "new_file"
for index, filename in enumerate(os.listdir(directory)):
old_file = os.path.join(directory, filename)
if os.path.isfile(old_file):
new_file_name = f"{new_prefix}_{index}{os.path.splitext(filename)[1]}"
new_file = os.path.join(directory, new_file_name)
os.rename(old_file, new_file)
6. Precauciones y mejores prácticas
Al usar os.path.basename()
, tenga en cuenta las diferencias en los caracteres separadores de ruta según el SO y la combinación con pathlib
, entre otros, y preste atención a los siguientes puntos.
- Utilizar
os.path.join()
ypathlib.Path()
para compatibilidad multiplataforma - Se verifica la existencia de archivos con
os.path.exists()
yos.path.isfile()
7. Resumen
os.path.basename()
es una función muy útil para obtener el nombre de archivo a partir de una ruta de archivo en Python. En este artículo, explicamos en detalle desde el uso básico de basename()
hasta las funciones relacionadas y las diferencias con pathlib
.
- Obtención del nombre de archivo desde soporte multiplataforma, creo que ha comprendido cómo es útil en diversas situaciones prácticas.
- Próximo paso como, considere también el uso de otras funciones
os.path
ypathlib
. La manipulación de archivos será aún más conveniente.