Saltar al contenido

¿Cómo reemplazar (o eliminar) una extensión de un nombre de archivo en Python?

Basta ya de investigar por todo internet ya que has llegado al sitio exacto, tenemos la respuesta que necesitas recibir pero sin complicaciones.

Solución:

Prueba os.path.splitext, debería hacer lo que quieras.

import os
print os.path.splitext('/home/user/somefile.txt')[0]+'.jpg'

Ampliando la respuesta de AnaPana, cómo retirar una extensión usando pathlib (Python >= 3.4):

>>> from pathlib import Path

>>> filename = Path('/some/path/somefile.txt')

>>> filename_wo_ext = filename.with_suffix('')

>>> filename_replace_ext = filename.with_suffix('.jpg')

>>> print(filename)
/some/path/somefile.ext    

>>> print(filename_wo_ext)
/some/path/somefile

>>> print(filename_replace_ext)
/some/path/somefile.jpg

Como dijo @jethro, splitext es la forma ordenada de hacerlo. Pero en este caso, es bastante fácil dividirlo usted mismo, ya que la extensión debe ser la parte del nombre del archivo que viene después del punto final:

filename = '/home/user/somefile.txt'
print( filename.rsplit( ".", 1 )[ 0 ] )
# '/home/user/somefile'

los rsplit le dice a Python que realice el string se divide a partir de la derecha de la stringy el 1 dice que realice como máximo una división (de modo que, por ejemplo, 'foo.bar.baz' -> [ 'foo.bar', 'baz' ]). Ya que rsplit siempre devolverá un no vacío arraypodemos indexar con seguridad 0 en él para obtener el nombre de archivo menos la extensión.

Puedes confirmar nuestra investigación exponiendo un comentario y puntuándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *