Django - как сделать временный (на диске) файл из загруженного (в памяти) файла?

Я работаю над проектом, в котором пользователь загружает файл во время создания заказа. Файл отправляется через AJAX на view, а затем распознается количество слов, которое возвращается обратно.

Для этой цели я хочу использовать модуль textract. Проблема в том, что я не нашел способа добавить загруженный в память файл в качестве аргумента textract.process(filepath), так как он хочет filepath, а не file.

Поэтому я полагаю, что мне следует временно сохранить этот файл на диске и отправить путь к этому файлу в функцию process.

@csrf_exempt
def ajax_file_word_count(request):
    from SolutionsForLanguages import word_counter
    file = request.FILES.get('file')
    count = word_counter.count_words(file)
    return JsonResponse({'word_count': count})

Как я могу сделать так, чтобы файл сразу удалялся после подсчета слов?


person Milano    schedule 25.01.2017    source источник


Ответы (1)


Посмотрите на модуль tempfile python. Вы можете использовать его для создания временного файла и, используя это свойство пути файловых объектов, получить путь к файлу, а затем передать его предполагаемой функции. Я думаю, это должно сработать, а затем вы можете удалить временный файл.

person Rajesh Yogeshwar    schedule 25.01.2017