itstnd@yandex.ru

Консультации

Разработка и поддержка сайтов

Вставить строку в текстовый файл перед искомой

 python    

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

 

def insert_line_before_search(filename, search_string, new_line):
«»»
Вставляет новую строку в текстовый файл перед искомой строкой.

:param filename: Имя файла
:param search_string: Искомая строка
:param new_line: Новая строка для вставки
«»»
# Чтение содержимого файла
with open(filename, ‘r’) as file:
lines = file.readlines()

# Флаг для проверки, была ли строка вставлена
inserted = False

# Новый список строк с вставленной строкой
new_lines = []
for line in lines:
if search_string in line and not inserted:
new_lines.append(new_line + ‘\n’)
inserted = True
new_lines.append(line)

# Запись обновленного содержимого обратно в файл
with open(filename, ‘w’) as file:
file.writelines(new_lines)

# Пример использования
filename = ‘example.txt’
search_string = ‘искомая строка’
new_line = ‘новая строка’

insert_line_before_search(filename, search_string, new_line)

Пояснение:

  1. Чтение содержимого файла: Файл читается построчно и сохраняется в список lines.
  2. Поиск искомой строки и вставка новой строки: Перебираются строки файла. Если искомая строка найдена и новая строка еще не вставлена, новая строка добавляется в новый список строк new_lines, затем добавляется текущая строка.
  3. Запись обновленного содержимого обратно в файл: Содержимое списка new_lines записывается обратно в файл, перезаписывая его.

Обработка ошибок и дополнительные проверки

Добавьте обработку ошибок, чтобы сделать скрипт более надежным:

def insert_line_before_search(filename, search_string, new_line):
«»»
Вставляет новую строку в текстовый файл перед искомой строкой.

:param filename: Имя файла
:param search_string: Искомая строка
:param new_line: Новая строка для вставки
«»»
try:
# Чтение содержимого файла
with open(filename, ‘r’) as file:
lines = file.readlines()

# Флаг для проверки, была ли строка вставлена
inserted = False

# Новый список строк с вставленной строкой
new_lines = []
for line in lines:
if search_string in line and not inserted:
new_lines.append(new_line + ‘\n’)
inserted = True
new_lines.append(line)

# Запись обновленного содержимого обратно в файл
with open(filename, ‘w’) as file:
file.writelines(new_lines)

if inserted:
print(«Line inserted successfully.»)
else:
print(«Search string not found.»)
except IOError as e:
print(«An error occurred while reading or writing the file: {}».format(e))

# Пример использования
filename = ‘example.txt’
search_string = ‘искомая строка’
new_line = ‘новая строка’

insert_line_before_search(filename, search_string, new_line)

 

Этот пример включает обработку ошибок ввода-вывода и выводит сообщение о том, была ли строка успешно вставлена. Теперь вы знаете как Вставить строку в текстовый файл перед искомой используя python