Я использую Atom/Electron для создания приложения, которое имеет визуализацию по видео на основе данных. Каждое видео имеет соответствующий файл CSV с информацией для каждого кадра. Видеоролики составляют около 100 минут, поэтому в файлах есть много данных!Лучший способ чтения из большого CSV-файла без загрузки всего в память с помощью Javascript
Проблема, с которой я сталкиваюсь, заключается в том, что загрузка и анализ файла занимает пару секунд. В большинстве случаев это не проблема. Но мне нужно сделать плейлист из частей видео, и загрузка всего CSV-файла при каждом изменении видео не является жизнеспособным вариантом.
Я искал файловые потоковые параметры как fast-csv, но мне не удалось начать чтение для произвольной части файла.
EDIT: из документации FS. В этом случае вопрос заключается в том, как я могу узнать, какой байт соответствует позиции, которую я хочу в файле?
опции могут включать начальное и конечное значения для чтения диапазона байтов из файла вместо всего файла. И начало и конец включительно и начать с 0.
Как вы думаете, было бы лучше и наиболее производительным подход к этой ситуации?
В бетоне:
Есть ли способ запуска читать поток из любой части файла CSV?
Считаете ли вы, что существует другой способ хранения, который позволил бы мне решить эту проблему лучше?
Являются ли ширины столбцов фиксированными в csv? (например, столбец 1 всегда содержит 20 символов) –
Этот вопрос может быть полезен: http://stackoverflow.com/questions/6156501/read-a-file-one-line-at-a-time-in-node-js Я не знаю достаточно о узле, чтобы ответить наверняка, но мне кажется, что вы хотите отправить на линию csv за раз. –
@DevinH. нет, но каждый столбец всегда является числом, поэтому нетрудно использовать какое-то дополнение. В идеале я бы предпочел не делать этого. Я думал об индексировании позиции байта каждой строки. И храните массивы с позициями. Это не проблема при обработке некоторых файлов, когда файл будет загружен в первый раз. – limoragni