Python Obtener un nombre de archivo sin extensión de la ruta
-
Obtener el nombre del archivo sin la extensión de la ruta usando el método
pathlib.path().stem
en Python -
Obtener el nombre del archivo sin la extensión de la ruta usando los métodos
os.path.splitext()
ystring.split()
en Python -
Obtener el nombre del archivo de la ruta usando los métodos
os.path.basename()
yos.path.splitext()
en Python
Este tutorial demostrará varios métodos para obtener el nombre de un archivo sin extensión a partir de la ruta de un archivo en Python. Supongamos que el objetivo es obtener el nombre de los archivos de la lista de rutas de archivos disponibles en forma de cadena, como por ejemplo de la ruta Desktop/folder/myfile.txt
, obtenemos sólo el nombre del archivo myfile
sin la extensión .txt
.
Obtener el nombre del archivo sin la extensión de la ruta usando el método pathlib.path().stem
en Python
El método path().stem
toma la ruta del archivo como entrada y devuelve el nombre del archivo extrayéndolo de la ruta del archivo. Por ejemplo, desde la ruta Desktop/folder/myfile.txt
, devolverá myfile
sin la extensión .txt
.
El siguiente ejemplo de código demuestra cómo utilizar el path().stem
para obtener el nombre del archivo sin la extensión del mismo a partir de la ruta del archivo:
from pathlib import Path
file_path = "Desktop/folder/myfile.txt"
file_name = Path(file_path).stem
print(file_name)
Producción :
myfile
Obtener el nombre del archivo sin la extensión de la ruta usando los métodos os.path.splitext()
y string.split()
en Python
El método path.splitext()
del módulo os
toma la ruta del archivo como entrada de cadena y devuelve la ruta y la extensión del archivo como salida.
Como queremos obtener el nombre del archivo a partir de la ruta del mismo, podemos eliminar primero la extensión del archivo utilizando el método os.path.splitext()
. El primer elemento del resultado de la división es la ruta del archivo sin la extensión. Este resultado se divide aún más utilizando /
como separador. El último elemento será el nombre del archivo sin extensión. El siguiente ejemplo de código demuestra cómo obtener el nombre del archivo sin extensión a partir de la ruta de acceso utilizando los métodos path.splitext()
y string.split()
.
import os
file_path = "Desktop/folder/myfile.txt"
file_path = os.path.splitext(file_path)[0]
file_name = file_path.split("/")[-1]
print(file_name)
Producción :
test
Obtener el nombre del archivo de la ruta usando los métodos os.path.basename()
y os.path.splitext()
en Python
En Python el método path.basename()
del módulo os
toma la ruta del archivo como entrada y devuelve el nombre base extraído de la ruta del archivo. Por ejemplo, el nombre base de Desktop/folder/myfile.txt
es myfile.txt
.
Como queremos obtener el nombre del archivo a partir de la ruta, el nombre base puede ser extraído usando el método path.basename()
y el nombre del archivo usando path.splitext()
. El siguiente ejemplo de código demuestra cómo obtener el nombre del archivo de la ruta utilizando los métodos path.basename()
y path.splitext()
.
import os
file_path = "Desktop/folder/myfile.txt"
basename = os.path.basename(file_path)
file_name = os.path.splitext(basename)[0]
print(file_name)
Producción :
myfile
myfile.tar.gz
, todos los métodos explicados anteriormente devolverán myfile.tar
como nombre de archivo.Supongamos que necesitamos obtener el nombre del fichero sin la parte que va después de .
como myfile
en lugar de myfile.tar
de la ruta Escritorio/carpeta/myfile.tar.gz
, el método string.index()
puede utilizarse para extraer sólo myfile
de myfile.tar
. Pero el inconveniente de este método es que si el .
es parte del nombre del archivo como my.file.tar.gz
, devolverá my
como nombre del archivo.
En el siguiente ejemplo de código podemos utilizar string.index()
para eliminar .tar
de la salida myfile.tar
de los métodos explicados anteriormente:
file_name = "myfile.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)
file_name = "my.file.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)
Producción :
myfile
my