我只是想知道如何扩充/解压缩一串文本,这是一个gzip压缩字符串,也是base64编码?
例如,所有python示例似乎都专注于打开文件,而我想处理一个gzip压缩字符串。
答案 0 :(得分:5)
在python3下,其他答案对我没有帮助,但我发现了这个:
def parseExtension(filename):
periodPosition = filename.find(".")
extension = (filename[periodPosition + 1:])
return extension
def fileExtensionExists(fileList, fileExtension):
for fileName in fileList:
return(parseExtension(fileList))
return
print(fileExtensionExists( ["python.exe", "assignment5.docx",
"assignment4.py", "shortcuts.docx", "geographyhw1.txt"], "py"))
希望这会有所帮助
答案 1 :(得分:1)
您可以使用base64和zlib库:
import base64, zlib
decoded_data = zlib.decompress(base64.b64decode(encoded_data))
gzip模块仅用于文件操作:https://docs.python.org/2/library/gzip.html。 它使用zlib进行实际压缩/解压缩。
答案 2 :(得分:1)
GzipFile
模块中的gzip
允许您提供fileobj
参数。如果字符串确实是 gzipped (即:它具有正确的标题),那么您可以将字符串包装在StringIO
对象中并传递它
import base64
import gzip
from io import StringIO
gzippedstr = fetchgzippedstr() # wherever it may come from
gzcontent = gzip.GzipFile(fileobj=StringIO(gzippedstr))
b64content = gzcontent.read()
content = base64.b64decode(b64content)