【问题标题】:Why zipfile module is_zipfile function cannot detech a gzip file?为什么 zipfile 模块是 zipfile 函数无法检测到 gzip 文件?
【发布时间】:2015-10-13 00:04:39
【问题描述】:

我知道这个问题Why "is_zipfile" function of module "zipfile" always returns "false"?。我想寻求更多的澄清和确认。

我使用 gzip 模块在 python 中创建了一个 zip 文件。

如果我在 OSX 中使用 file 命令检查 zip 文件,我会得到这个

>  file data.txt
data.txt: gzip compressed data, was "Slide1.html", last modified: Tue Oct 13 10:10:13 2015, max compression

我想编写一个通用函数来判断文件是否经过 gzip 压缩。

import gzip
import os

f = '/path/to/data.txt'
print os.path.exists(f)  # True

with gzip.GzipFile(f) as zf:  
    print zf.read()  # Print out content as expected

import zipfile

print zipfile.is_zipfile(f)  # Give me false.  Not expected

我想使用zipfile 模块,但它总是报错。

我只想确认zipfile 模块与gzip 不兼容。如果是这样,为什么会这样? zipgzip 被认为是不同的格式吗?

【问题讨论】:

    标签: python python-2.7 zip gzip


    【解决方案1】:

    我使用 gzip 模块在 python 中创建了一个 zip 文件。

    不,你没有。 gzip 不会创建 zip 文件。

    我只是想确认一下 zipfile 模块与 gzip 不兼容。

    已确认。

    如果是,为什么会这样?

    gzip 文件是使用 zlib 压缩的单个文件,其标题非常小。一个 zip 文件是多个文件,每个文件都可选用 zlib 压缩,在一个带有标题和目录的存档中。

    zip 和 gzip 被认为是不同的格式吗?

    是的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多