从 gzip 文件到 python 中文本的字节数

Bytes from gzip file to text in python

一旦 gzip 文件的内容被提取到一个名为 text 的字符串中,它看起来就像是乱码。我怎样才能把它变成人类可读的东西?

with open("zipped_ex.gz.2016") as f:
    text = f.read()
    print text

注意:我不是在寻找从 zipper_ex_gz.2016 到内容的方法。相反,我正在寻找一种从字节串到内容的方法。

import gzip
with gzip.GzipFile("zipped_ex.gz.2016") as f:
    text = f.read()
    print text

在磁盘上,该文件是人类无法读取的二进制 blop。
要使用存档中的数据,您需要了解如何提取它。

在这种情况下,通过 GzipFile 模块解压缩存档 "on the fly" 在内存中,所以当您执行 f.read() 时,您将获得存档内容,而不是二进制内容存档到您的磁盘上。

可以在 bytes 字符串上使用相同的模块:

import io
import gzip

f = io.BytesIO(b"Your compressed gzip-file content here")
with gzip.GzipFile(fileobj=f) as fh:
    plain_text = fh.read()
    print(plain_text)

注意: gzip 文件实际上是用 gzip 格式压缩的单个数据单元,显然。但是如果你想在 gzip 文件中使用 tar 文件,如果你有大量通过 tar 压缩的文本文件,请看一下这个问题:How do I compress a folder with the Python GZip module?