相关疑难解决方法(0)

如何进行虚拟文件处理?

因此,对于创建文件,我使用以下内容:

fileHandle = open('fileName', 'w')
Run Code Online (Sandbox Code Playgroud)

然后将内容写入文件,关闭文件.在下一步中,我处理文件.在程序结束时,我最终得到了一个我需要删除的"物理文件".

有没有写一个"虚拟"的文件,它的行为完全像一个"物理"一个(允许其操作方法相同),但在Python中运行结束时不存在的方式吗?

python virtual file

57
推荐指数
3
解决办法
4万
查看次数

如何在 Django 中提供创建的临时文件

我有一个远程存储项目,当用户请求他的文件时,django 服务器在本地检索和存储文件(用于某些处理)作为临时文件,然后使用 mod x-sendfile 将其提供给用户。我当然希望在向用户提供临时文件后将其删除。

文档指出,NamedTemporaryFile如果设置为 delete 参数,则False在所有引用都消失后会导致删除文件。但是当为用户提供服务时tempfile,它不会被删除。如果我在下载时设置 delete=True,我会收到“/ServeSegment/Test.jpg/在此服务器上找不到请求的 URL ”。

这是列出用户文件的视图:

def file_profile(request):
    obj = MainFile.objects.filter(owner=request.user)
    context = {'title': 'welcome',
               'obj': obj
               }
    return render(request, 'ServeSegments.html', context=context)
Run Code Online (Sandbox Code Playgroud)

这是检索、临时存储和提供请求文件的视图:

def ServeSegment(request, segmentID):    
    if request.method == 'GET':    
        url = 'http://192.168.43.7:8000/foo/'+str(segmentID)
        r = requests.get(url, stream=True)
        if r.status_code == 200:
            with tempfile.NamedTemporaryFile(dir=
        '/tmp/Files', mode='w+b') as f:
                for chunk in r.iter_content(1024):
                    f.write(chunk)        
            response = HttpResponse()
            response['Content-Disposition'] = 'attachment; segmentID={0}'.format(f.name)
            response['X-Sendfile'] = "{0}".format(f.name)
            return response
        else:
            return …
Run Code Online (Sandbox Code Playgroud)

python django

5
推荐指数
2
解决办法
6312
查看次数

标签 统计

python ×2

django ×1

file ×1

virtual ×1