Я думаю, проблема в том, что вы неправильно используете свою функцию sed
. Вы открываете файл, который хотите редактировать, внутри своей функции main
, а затем снова открываете (и затем закрываете) внутри функции sed
.
Похоже, ваша функция sed
должнаиспользоваться для всего файла, а не только для строки.
Если вы измените свою функцию main
на что-то подобное, она должна работать (если нет, прокомментируйте, что не так):
def main():
"""
Replace all year-month-days which have a possible wrong pattern
"""
occurrences = 999 # arbitray number. If you know the exact number, you may want to edit this.
for i in range (6):
for j in range (12):
for k in range (22):
Year = year + i; Month = month + j; Day = day + k
pattern = '%s %s%s' %(Year, Month, Day)
replace = '%s %s %s' %(Year, Month, Day)
sed(pattern, replace, infile, count=occurrences)