Дописать строки в начало файла на Python
Есть файл и строка. Необходимо добавить строку в начало файла. Нагуглил:
with open(f'{fill_path}{n}.xml', 'rb+') as final:
final.seek(0)
final.writelines(['first_string'])
Но вот такой способ стирает часть строк начала файла.
Файлик хочу в формате xml, если что.
Ответы (2 шт):
Автор решения: eri
→ Ссылка
Обычно вставка в середину или в начало файла не работает просто так.
Если файл маленький:
Прочитай его в переменную и перезапиши полностью.
with open(f'{fill_path}{n}.xml', 'rb') as final:
data = final.read()
with open(f'{fill_path}{n}.xml', 'wb') as final:
final.writelines(['first_string'])
final.write(data)
Если файл в память не помещается:
Нужно вставить нули размером с вставляемый кусок через функцию fallocate, которой нет в Python - установите пакет, видел пару реализаций https://github.com/trbs/fallocate, https://github.com/junhe/pyfallocate .
Потом делаем seek на нужное место и write.
На Windows не нахожу вставки такой.
Автор решения: Sergey
→ Ссылка
может как то так?
with open('file.txt', 'r+') as file:
content = file.read() # Чтение
file.seek(0, 0) # Переход в начало файла
file.write(new_line) # Запись новой строки
file.write(content) # Запись старого содержимого
