import re
import os
MARKER = 'hello'
readFileData = "['\\n', '\\r', '\\0'];\nvar MONTH_TO_NUM = { jan: 0, feb: 1, mar: 2 };\n"
outFileBuffer ='updated file\nhello\n'
outFileBuffer = re.sub(MARKER, (readFileData + MARKER), outFileBuffer)
# output of re.sub doesn't preserve double slash \\
# outFileBuffer = "updated file\n['\n', '\r', '\x00'];\nvar MONTH_TO_NUM = { jan: 0, feb: 1, mar: 2 };\nhello\n"
destination = os.getcwd() + "test.txt"
with open(destination, "w") as f:
f.write(outFileBuffer)
input.txt
var TERMINATORS = ['\n', '\r', '\0'];
var MONTH_TO_NUM = { jan: 0, feb: 1, mar: 2 };
Contents of input.txt are stored in readFileData variable after reading.
As soon as re.sub fn is used double forward slash are converted to single slash. Refer outFileBuffer comment.
When the buffer is written back to disk var TERMINATORS = ['\n', '\r', '\0'];
seems to messed up, because outFileBuffer is not escaped properly.
How can escaped string be preserved while using re.sub method.