Supongamos que tengo un archivo.txt con línea
aaaa = / bbb / ccc / ddd / eee / fff

Me gustaría reemplazar ccc con xxx

He intentado a continuación sin éxito

import re
import fileinput

for line in fileinput.input(file.txt, inplace=True):
    re.sub(r'(ccc)', 'xxx', line)
0
FelixK 28 abr. 2020 a las 12:50

2 respuestas

Casi la misma pregunta ya se ha hecho aquí. En su caso, la respuesta se vería así:

for line in fileinput.input('file.txt', inplace=True):
    print(re.sub(r'(ccc)', 'xxx', line), end='')

Vea el enlace de arriba para aprender sobre alternativas y eficiencia. (También tenga en cuenta las citas alrededor de file.txt)

Breve explicación:

  • print() en Python imprime líneas con un carácter de nueva línea por defecto. Para evitar esto, end='' debe especificarse como argumento de palabra clave.
  • r'(ccc)' contiene un par de paréntesis de grupo que no es necesario en su caso, por lo que simplemente puede escribir r'ccc' como ya se señaló en las dos publicaciones anteriores.
0
HHFox 28 abr. 2020 a las 12:24

Prueba esto:


m = re.sub(r'ccc', r'xxx', "/bbb/ccc/ddd/eee/fff")
#OUTPUT: /bbb/xxx/ddd/eee/fff
0
PySaad 28 abr. 2020 a las 09:54