从 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?
一旦 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?