Идеальный способ - использовать модуль fileinput
для замены содержимого файла на месте, а не открывать файл в режиме обновления r+
from __future__ import print_function
import fileinput
for line in fileinput.input("repo.dat", inplace=True):
if line.startswith('ORDER_NUMBER'):
print (line.replace("Speed_Status", "STATUS"), end="")
else:
print (line, end="")
Почему ваша попытка не удалась?При этом логика формирования words
совершенно неправильная, когда вы разбиваете строку на основе !
, сформированный вами список не в порядке как ['ORDER_NUMBER', '!', 'STATUS!Days!\n']
со встроенной новой строкой.Кроме того, ваш write()
вызов никогда не будет принимать объект не символьного буфера.Вам нужно привести его в строковый формат, чтобы распечатать.