¿Cómo obtener el nombre del archivo sin la extensión de una ruta en Python?
Obtener el nombre del archivo sin la extensión:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Imprime:
/path/to/some/file
Nota importante:_ Si el nombre del archivo tiene varios puntos, sólo se elimina la extensión después del último. Por ejemplo:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Imprime:
/path/to/some/file.txt.zip
Vea otras respuestas más abajo si necesita manejar ese caso.
Puedes hacer el tuyo con:
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
Nota importante: Si hay más de un .
en el nombre del archivo, sólo se elimina el último. Por ejemplo:
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Vea a continuación otras respuestas que abordan este tema.
Pero incluso cuando importo os, no soy capaz de llamarlo path.basename. ¿Es posible llamarlo directamente como nombre base?
importar os
, y luego usar os.path.basename
.
importar
osno significa que puedas usar
os.foosin hacer referencia a
os`.