Как создать и потоковую загрузку файла по фиксированному размеру порции, используя ответ пилона - PullRequest
0 голосов
/ 07 ноября 2018

Моя задача - экспортировать результаты поиска и загружать их в виде CSV-файлов. Мое текущее решение сделало свою работу, но оно неэффективно для больших файлов. Я пишу это приложение в CKAN, который использовал pylon в качестве серверной части. Я прочитал некоторые ответы от SO, такие как: https://stackoverflow.com/a/837561/3781320. Но эти ответы работают, только если файл существует. Я хотел бы знать, как создавать файлы по чанку и загружать чанк одновременно. Мое текущее решение состоит из трех этапов:

  1. Создание отфильтрованных результатов в виде словаря: мне не нужны полные метаданные результатов поиска для каждого элемента. Поэтому мне нужно отфильтровать необходимые атрибуты.
  2. Запись каждой строки в обработчик файла csv: файл был обработан как StringIO, и я использовал csv.DictWriter для записи каждой строки. Размер чанка по умолчанию составляет 100 строк. (Мы можем изменить размер куска).
  3. Начать загрузку с: return csvFile.read()

Если есть предложения, буду признателен.

...