将gzip文件的内容提取到名为text
的字符串后,它看起来像乱码。如何将其变成人类可读的东西?
with open("zipped_ex.gz.2016") as f:
text = f.read()
print text
注意:我不是在寻找从zipper_ex_gz.2016到内容的方法。相反,我正在寻找从bytestring到内容的方法。
答案 0 :(得分:3)
import gzip
with gzip.GzipFile("zipped_ex.gz.2016") as f:
text = f.read()
print text
在磁盘上,文件是一个人为不可读的二进制blop 要处理存档中的数据,您需要提取一些数据。
在这种情况下,在内存中通过GzipFile
模块解压缩存档"在运行中"因此,当您执行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?