擅长:python、mysql、java
<p><a href="https://docs.python.org/2/library/zipfile.html">zipfile</a>是一个标准的库模块,它完全符合您的要求。对于您的用例,肉和土豆是一个名为“writestr”的方法,它接受一个文件的名称以及其中包含的要压缩的数据。在</p>
<p>在下面的代码中,我在文件解压缩时使用了一个顺序命名方案,但这可以切换到任何你想要的。在</p>
<pre><code>import zipfile
import StringIO
zipped_file = StringIO.StringIO()
with zipfile.ZipFile(zipped_file, 'w') as zip:
for i, file in enumerate(files):
file.seek(0)
zip.writestr("{}.csv".format(i), file.read())
zipped_file.seek(0)
</code></pre>
<p>如果您希望将来验证您的代码(hint hint Python 3 hint hint),那么您可能需要切换到使用<a href="https://docs.python.org/2/library/io.html#io.BytesIO">io.BytesIO</a>而不是StringIO,因为python3是关于字节的。另一个好处是,明确的寻找是不必要的拜特西奥在读取之前(我还没有用Django的HttpResponse测试过这种行为,所以我把最后的搜索放在那里以防万一)。在</p>
^{pr2}$