Чтобы вставить строку в текстовый файл перед искомой строкой в 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)
Пояснение:
- Чтение содержимого файла: Файл читается построчно и сохраняется в список
lines. - Поиск искомой строки и вставка новой строки: Перебираются строки файла. Если искомая строка найдена и новая строка еще не вставлена, новая строка добавляется в новый список строк
new_lines, затем добавляется текущая строка. - Запись обновленного содержимого обратно в файл: Содержимое списка
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