在Python中将一个可能很大的文本文件上传到普通WSGI服务器
我需要把一个可能非常大的纯文本文件上传到一个很简单的wsgi应用上,但又不想让服务器的内存被占满。我该怎么做呢?我想使用标准的Python模块,尽量不使用第三方模块。
3 个回答
0
Python会处理gzip和zip文件,你可以查看这份文档。我建议你在自己的电脑上先把文件压缩一下(可以使用像7-zip这样的压缩软件),然后再上传到服务器上。
更好的方法是:写一个脚本,让它自动压缩文件并上传。这是可以通过Python的标准库来实现的。
2
如果你使用cgi模块来处理输入(大多数框架都是这样做的,比如Pylons、WebOb、CherryPy),那么它会自动把上传的文件保存到一个临时文件里,而不是直接把它加载到内存中。
3
wsgi.input 应该是一个像文件一样的流对象。你可以从中分块读取数据,然后直接把这些块写入磁盘。这样做不会占用太多内存。
或者我可能误解了问题?