Как организовать обработку большого файла? Требуется написать несколько алгоритмов, обрабатывающих WAV-файлы.
Файлы размером около 100 МБ, поэтому не хотелось бы загружать их целиком в память.
Какую абстракцию предоставить алгоритмам для доступа к отсчетам сигнала? Спрашиваю с точки зрения загрузки файла. Определить что-то типа итератора по отсчетам?

21 Авг 2019 в 07:01
148 +1
0
Ответы
1

Для организации обработки большого файла WAV формата можно использовать следующие алгоритмы:

Построчное чтение файла: можно читать файл построчно, обрабатывая каждую строку данных алгоритмически. Это позволит избежать загрузки файла целиком в память.

Чтение файла поблочно: файл WAV можно разбить на блоки данных определенного размера и обрабатывать их поочередно, не загружая весь файл целиком.

Чтение файла частями: файл можно разделить на части определенного размера и обрабатывать их по очереди. Это позволит распределить нагрузку на обработку данных и избежать перегрузки памяти.

Что касается абстракции для доступа к отсчетам сигнала, можно создать класс, предоставляющий методы для чтения отдельных отсчетов из файла. Этот класс может реализовывать итератор, который будет возвращать следующий отсчет при каждом вызове метода. Таким образом, можно удобно обращаться к данным в файле WAV без необходимости загружать весь файл в память.

Например, в Python данный класс может выглядеть следующим образом:

class WAVFileReader:
def __init__(self, file_path, block_size=1024):
self.file_path = file_path
self.block_size = block_size
self.file = open(file_path, 'rb')
def __iter__(self):
return self
def __next__(self):
data = self.file.read(self.block_size)
if data:
return data
else:
raise StopIteration
def close(self):
self.file.close()

Таким образом, используя данный класс, можно последовательно читать данные из WAV файла блоками определенного размера, не загружая весь файл целиком в память.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир