【发布时间】:2014-10-07 03:23:25
【问题描述】:
上传文件时,表示它的标准方式是cgi.FieldStorage(至少 Pyramid 是这样做的)。但是,如果我想以有效的方式知道长度,我该如何得到它?例如:
uploaded = cgi.FieldStorage()
如果这个变量现在来自一个请求,如何确定文件的大小?
【问题讨论】:
标签: python python-2.7 wsgi
上传文件时,表示它的标准方式是cgi.FieldStorage(至少 Pyramid 是这样做的)。但是,如果我想以有效的方式知道长度,我该如何得到它?例如:
uploaded = cgi.FieldStorage()
如果这个变量现在来自一个请求,如何确定文件的大小?
【问题讨论】:
标签: python python-2.7 wsgi
效率最低的方法是:
size = len(uploaded.value)
更好:
uploaded.file.seek(0, 2)
size = uploaded.file.tell()
uploaded.file.seek(0)
最佳:
import os
size = os.fstat(uploaded.file.fileno()).st_size
最后一个选项是在 C 中测量文件的首选方法,而 Python 仅通过此方法进行代理。它返回a structure,它可以告诉你各种各样的东西,甚至是文件的大小。
【讨论】: