Основная причина в том, что файл .csv
является текстовым файлом, и внесение изменений в первую строку файла подразумевает произвольный доступ к первой «записи» файла. Но текстовые файлы на самом деле не имеют «записей», они имеют строки неравной длины. Таким образом, изменение первой строки подразумевает чтение файла до первого возврата каретки, размещение чего-либо на его месте, а затем перемещение всех остальных данных в файле влево, если замена короче, или вправо, если замена это дольше. И для этого у вас есть два варианта. (1) Считайте весь файл в память, чтобы вы могли выполнить сдвиг влево или вправо. (2) Прочитайте файл построчно и запишите новый.
В конце легко добавить материал, потому что это не подразумевает смещение того, что уже есть.