在内存中下载并解压缩gzipped文件?
- 论坛
- 在内存中下载并解压缩gzipped文件?
9 浏览
在内存中下载并解压缩gzipped文件?
我想使用urllib下载一个文件,并在保存之前在内存中解压缩该文件。
目前我有以下代码:
import urllib2 import StringIO import gzip response = urllib2.urlopen(baseURL + filename) compressedFile = StringIO.StringIO() compressedFile.write(response.read()) decompressedFile = gzip.GzipFile(fileobj=compressedFile, mode='rb') outfile = open(outFilePath, 'w') outfile.write(decompressedFile.read())
但是最终写入的文件是空的。我该如何实现我想要的效果?
更新后的答案:
#! /usr/bin/env python2 import urllib2 import StringIO import gzip baseURL = "https://www.kernel.org/pub/linux/docs/man-pages/" # 检查文件名:由于新的更新,文件名可能会变化 filename = "man-pages-5.00.tar.gz" outFilePath = filename[:-3] response = urllib2.urlopen(baseURL + filename) compressedFile = StringIO.StringIO(response.read()) decompressedFile = gzip.GzipFile(fileobj=compressedFile) with open(outFilePath, 'w') as outfile: outfile.write(decompressedFile.read())