NumPy и memmap: [Errno 24] Слишком много открытых файлов

Вы могли бы пытаться протестировать в слишком глубокой начальной точке. Тест не должен быть создан для тестирования каждого метода индивидуально; закрытые и статические методы должны быть протестированы путем вызова открытых методов, которые тогда называют частные и статические в свою очередь.

Так позволяет, говорят, что Ваш код похож на это:

public object GetData()
{
 object obj1 = GetDataFromWherever();
 object obj2 = TransformData(obj1);
 return obj2;
} 
private static object TransformData(object obj)
{
//Do whatever
}

Вы не должны писать тест против метода TransformData (и Вы не можете). Вместо этого запишите тест для метода GetData, который тестирует работу, сделанную в TransformData.

5
задан SilentGhost 5 October 2009 в 13:14
поделиться

1 ответ

Так как memmap принимает не дескриптор открытого файла, а имя файла, я полагаю, вы утекаете файловый дескриптор temp_fd . Помогает ли os.close (temp_fd) ?


Отлично, что он работает.

Поскольку вы можете передать numpy.memmap файловый объект, вы можете создать его из уже имеющегося файлового дескриптора , temp_fd .

fobj = os.fdopen(temp_fd, "w+")
numpy.memmap(fobj, ...
4
ответ дан 15 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: