Прежде всего вам нужно прочитать строки, поэтому вам нужно заменить infile = open('words.txt')
на
infile = open('words.txt')
letters = infile.readlines()
или, что еще лучше, использовать .read().splitlines()
, чтобы избавиться от конечных \n
символов после каждой буквы. ,Если вы напечатаете файл после модификации, вы увидите список, который выглядит примерно так: ['a', 'b', 'c', 'd']
, если вы выбрали последний вариант. Теперь, когда вы работаете со списком, вы можете просто перебрать его, добавив элементы в другой список и проверив, является ли текущая буква буквой b, а затем следует буква c и добавляет ли она нули в список. После этого вы можете объединить элементы списка в строку и записать ее в выходной файл. Также не забудьте закрыть файлы, как только вы закончите с ними. Полученный код будет выглядеть примерно так:
def function():
infile = open('words.txt')
letters = infile.read().splitlines()
outfile = open('words_edited.txt', 'w')
res = []
n = len(letters)
for i in range(n):
res.append(letters[i])
if letters[i] == 'b' and i + 1 != n and letters[i+1] == 'c':
res.append('0\n0\n0')
outfile.write('\n'.join(res))
infile.close()
outfile.close()
if __name__ == '__main__':
function()
Возможно, есть более эффективный способ сделать это, но я хотел сделать его как можно более простым, чтобы вы могли лучше понять его.