Самым простым способом будет чтобы просто сохранить все содержимое файла в памяти до тех пор, пока вы не закончите, выпишите заголовок, а затем выпишите оставшуюся часть файла.
Если память является проблемой, и вы не можете безопасно хранить весь файл в памяти или просто не хотите, тогда вы можете записать основную часть данных CSV во временный файл, а затем, когда вы закончите, напишите заголовок в основной файл и скопируйте данные из временного файла в основной файл в цикле.
Если вы хотите быть фантастическим, после записи основных данных CSV в основной файл, вы можете прокручивать файл с самого начала, считывать в память данные, которые вы собираетесь перезаписать заголовком, затем писать заголовок поверх этих данных и т. д., читать каждый фрагмент в память, перезаписывать его предыдущим, пока не дойдете до конца и не добавите последний фрагмент. Таким образом, вы «вставляете» данные в начале, и я перемещаю остальную часть файла вниз. Я бы действительно не рекомендовал это, так как в основном это просто добавит сложности без особой пользы, если нет конкретной причины, по которой вы не можете сделать что-то более простое, как использование временного файла.
выглядит как 2 файла - это единственный способ добавить данные динамического заголовка, спасибо. –