题主你好,建议你使用StringIO模块。 一个StringIO对象和一个打开的磁盘文件类似,同样可以执行read,write,seek等操作,区别在于它是一个在内存中的文件。 然后再配合gzip或者别的解压模块,就可以做到在内存中解压了,示例代码如下: import urllib2 import StringIO import gzip import os baseURL = "https://www.kernel.org/pub/linux/docs/man-pages/" filename = "man-pages-3.34.tar.gz" # outFilePath will be "man-pages-3.34.tar" outFilePath = os.path.splitext(filename)[0] response = urllib2.urlopen(baseURL + filename) compressedFile = StringIO.StringIO(response.read()) decompressedFile = gzip.GzipFile(fileobj=compressedFile) compressedFile.seek(0) with open(outFilePath, 'w') as outfile: outfile.write(decompressedFile.read()) 希望对您有用。 参考: http://stackoverflow.com/questions/15352668/download-and-decompress-gzipped-file-in-memory http://blog.csdn.net/jgood/article/details/4552723
题主你好,建议你使用StringIO模块。
一个StringIO对象和一个打开的磁盘文件类似,同样可以执行read,write,seek等操作,区别在于它是一个在内存中的文件。
然后再配合gzip或者别的解压模块,就可以做到在内存中解压了,示例代码如下:
希望对您有用。
参考:
http://stackoverflow.com/questions/15352668/download-and-decompress-gzipped-file-in-memory
http://blog.csdn.net/jgood/article/details/4552723