Pregunta Obtener nombre de archivo sin extensión en Python


Si tengo un nombre de archivo como uno de estos:

1.1.1.1.1.jpg

1.1.jpg

1.jpg

¿Cómo podría obtener solo el nombre de archivo, sin la extensión? ¿Una expresión regular sería apropiada?


77
2017-12-14 22:26


origen


Respuestas:


En la mayoría de los casos, no debe usar una expresión regular para eso.

os.path.splitext(filename)[0]

Esto también manejará un nombre de archivo como .bashrc correctamente al mantener el nombre completo.


176
2017-12-14 22:30



>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')

22
2017-12-14 22:32



Si tuviera que hacer esto con una expresión regular, lo haría así:

s = re.sub(r'\.jpg$', '', s)

10
2017-12-15 00:10



No hay necesidad de expresiones regulares. os.path.splitext es tu amigo:

os.path.splitext('1.1.1.jpg')
>>> ('1.1.1', '.jpg')

6
2017-12-14 22:33