В настоящее время я работаю над вызовом спутника DSTL. Там мне нужно создать файл представления, который находится в формате csv. Каждая строка в CSV содержит:Запись данных в CSV в цикле Python
Image ID, polygon class (1-10), Polygons
многоугольников являются очень длинным входом с началом и концами и т.д. начинается
многоугольники создаются с помощью алгоритма, для одного класса в то время, для за один раз (429 снимков, по 10 классов).
Теперь мой вопрос связан с временем вычисления и наилучшей практикой: как лучше всего написать данные о полигонах, которые я создаю в csv? Я открываю csv в начале, а затем записываю каждую строку в файл, поскольку я перебираю классы и изображения?
Или я должен сохранить данные в списке или словаре или что-то еще, а затем написать все это в файл csv сразу?
Дело в том, что я не уверен, насколько быстро записывается в CSV-файл. Кроме того, поскольку алгоритм уже довольно усваивает вычислительные средства, я хотел бы сохранить мой компьютер в сохранности всех данных в ОЗУ.
И, я думаю, запись данных в csv сразу приведет к уменьшению использования ОЗУ, верно?
Итак, вы говорите, что операции на диске медленные. Что именно это значит? Когда я пишу в CSV, каждая строка живет, когда я создаю данные, это замедляет мою программу? Итак, если я напишу целый список в файл csv, который будет быстрее, чем писать строку, а затем снова вычислить новую строку данных? Это значит, что компьютер ждет завершения действия до того, как начнется действие следующего действия, верно? Но, тем не менее, что делает процесс быстрее, если я жду, когда все данные накапливаются? Во всяком случае, такое же количество строк должно быть записано в csv, почему это будет медленнее, если я сделаю это по очереди?