Python3 Как сделать функцию, при выполнении которой в другом файле перед определенной строкой будет создаваться другая строка

Python3 Как сделать функцию, при выполнении которой в другом файле перед определенной строкой будет создаваться другая строка. Мне нужно для генерации кода в определенном месте по нажатию кнопки в tkinter.


Ответы (1 шт):

Автор решения: ikikaidesu
# создаем функцию принимающую имя файла, строку куда вставлять, текст для вставки
def insert_into_file(file_name, text_line, text_to_add):
    # открываем файл в режиме для чтения с кодировкой для русского языка
    with open(file_name, 'r', encoding='utf-8') as read_file:
        # читаем все линии(получается массив из линий)
        text = read_file.readlines()
        # вставляем в массив текст
        text.insert(text_line, text_to_add+"\n")
    # открываем файл в режиме для записи с кодировкой для русского языка
    with open(file_name, 'w', encoding='utf-8') as write_file:
        # обходим массив текста
        for i in text:
            # записываем
            write_file.write(i)

insert_into_file("ex.txt", 0, "123")
insert_into_file("ex.txt", 3, "456")

вот содержимое файла "ex.txt" до функции

В лесу родилась ёлочка,
В лесу она росла,
Зимой и летом стройная,
зеленая была.

вот после функции

123
В лесу родилась ёлочка,
В лесу она росла,
456
Зимой и летом стройная,
зеленая была.

→ Ссылка