Parce que tu n’as pas échappé tes \n… Ce sont des codes d’échappement, dans ton fichier d’origine, pas de vrais retours à la ligne, donc il ne faut pas que python les interprète… Soit tu utilises l’échappement d’échappement (\\), soit tu utilises une chaîne “raw" (r"blah\n"). Au passage, quand tu utilises une même chaîne plusieurs fois, surtout si elle est un poil complexe, mets-la dans une variable, c’est plus simple et évite les erreurs de frappes*:
1 2 3 4 5 6 7 8 9 10 11 12 13
| import os
import re
pattern = r'$tmp = sprintf("source $breakfile\n");'
file = '/home/stoner2008/workspace55/test8.txt'
with open(file) as fl:
msg = fl.read()
msg.replace(pattern, pattern + r"$tmp = sprintf('c \n');")
with open(file, "w") as fl:
fl.write(msg) |
Partager