Python: как вставить контент в определенную строку файла

Чтобы вставить контент в определенную строку файла с помощью Python, вы можете использовать несколько методов. Вот несколько подходов:

Метод 1: чтение и запись в новый файл

  1. Откройте входной файл для чтения и создайте новый выходной файл для записи.
  2. Перебрать каждую строку входного файла.
  3. Проверьте, является ли текущая строка той строкой, в которую вы хотите вставить контент.
  4. Если да, запишите новое содержимое в выходной файл.
  5. В противном случае запишите текущую строку из входного файла в выходной файл.
  6. Закройте входной и выходной файлы.
  7. Переименуйте выходной файл в исходный входной файл.

Вот пример фрагмента кода:

def insert_content(file_path, line_number, content):
    temp_file = file_path + '.tmp'
    with open(file_path, 'r') as input_file, open(temp_file, 'w') as output_file:
        for index, line in enumerate(input_file, 1):
            if index == line_number:
                output_file.write(content + '\n')
            output_file.write(line)
    os.remove(file_path)
    os.rename(temp_file, file_path)

Метод 2: использование модуля ввода файлов

  1. Импортируйте модуль fileinput.
  2. Используйте функцию fileinput.input(), чтобы открыть файл в режиме «на месте».
  3. Перебрать каждую строку файла с помощью цикла for.
  4. Проверьте, является ли текущая строка той строкой, в которую вы хотите вставить контент.
  5. Если это так, используйте метод fileinput.input().insert()для вставки содержимого.
  6. Закройте файл с помощью метода fileinput.input().close().

Вот пример фрагмента кода:

import fileinput
def insert_content(file_path, line_number, content):
    with fileinput.input(file_path, inplace=True) as file:
        for index, line in enumerate(file, 1):
            if index == line_number:
                print(content)
            print(line, end='')

Это всего лишь несколько методов, которые вы можете использовать для вставки содержимого в определенную строку файла с помощью Python. Не забудьте настроить параметр line_numberна желаемый номер строки, в которую вы хотите вставить контент.