Antes o después, en algún proyecto Python te tocará manipular objetos de tipo string
. De hecho, yo ahora mismo estoy trabajando en un script procesando imágenes de satélite y necesito crear un directorio cuyo nombre lo toma de base de otro directorio pero cambian los primeros caracteres. Para crear el nombre de este directorio estoy usando el método replace de la clase string.
Sustituir una subcadena de un string con replace()
El método replace(sub, nuevo)
de la clase string
devuelve una copia del string con todas las ocurrencias del substring sub
reemplazadas por el substring nuevo
.
Veámoslo con un ejemplo:
>>> dir_name = 'S2A_MSIL1C_20190106T105431_N0207_R051_T30SXH_20190106T112304' >>> new_dir_name = dir_name.replace('MSIL1C', 'MSIL2A') >>> new_dir_name 'S2A_MSIL2A_20190106T105431_N0207_R051_T30SXH_20190106T112304'
Limitando el número de ocurrencias a reemplazar
Al método replace()
se le puede pasar un tercer parámetro opcional de tipo integer
. Este parámetro indica el número máximo de ocurrencias a ser reemplazadas:
>>> aes = 'aaaaaa' >>> nueva = aes.replace('a', 'b', 3) >>> nueva 'bbbaaa'
No confundir con la función replace() del módulo string
El método replace()
visto en los apartados anteriores se refiere al método perteneciente a objetos de tipo string
. No hay que confundirlo con la función replace()
del módulo string que, además, fue eliminada en la versión 3 de Python.
Es por esto que al método se le llama del siguiente modo: 'cadena'.replace('c', 'C')
y no string.replace('cadena', 'c', 'C')
.