Django - 如何从上传(内存)文件制作临时(磁盘上)文件?

时间:2017-01-25 10:13:27

标签: python django django-file-upload

我正在开发一个项目,用户在创建订单时上传文件。该文件通过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})

我该怎么做才能在计算单词后立即删除文件?

1 个答案:

答案 0 :(得分:0)

查看pythons tempfile模块。您可以使用它来创建临时文件并使用该文件对象路径属性,获取文件路径,然后将其传递给您的预期函数。我想它应该可以工作然后你可以删除临时文件。