python - 如何给gzipped,base64d字符串充气

时间:2016-05-04 08:21:22

标签: python base64 gzip

我只是想知道如何扩充/解压缩一串文本,这是一个gzip压缩字符串,也是base64编码?

例如,所有python示例似乎都专注于打开文件,而我想处理一个gzip压缩字符串。

3 个答案:

答案 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)