扫码关注官方订阅号
比如urllib2 下载的文件,有办法直接存到内存中,然后再内存中解压么?
欢迎选择我的课程,让我们一起见证您的进步~~
题主你好,建议你使用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-memoryhttp://blog.csdn.net/jgood/article/details/4552723
如果在linux中可以使用 /dev/shm
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
题主你好,建议你使用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
如果在linux中可以使用 /dev/shm