В настоящее время я использую это:
f = open(filename, 'r+')
text = f.read()
text = re.sub('foobar', 'bar', text)
f.seek(0)
f.write(text)
f.close()
Но проблема в том, что старый файл больше, чем новый. Таким образом, я получаю новый файл, который имеет часть старого файла в конце.