为什么我的zip缺少CRC值?

时间:2018-05-08 16:02:17

标签: python-2.x zipfile

我的脚本正在用zipfile压缩一些文件,但存档似乎缺少CRC值 为什么会这样? 这是我的代码:

import os.path
import zipfile
from glob import glob
from sys import exit


def dozip():
    file_list = glob("C:/python27/scripts/*.py")

    zf = zipfile.ZipFile("myzip.zip", 'w')

    for f in [f.replace("/", os.sep) for f in file_list]:
        print f
        if os.path.exists(f):
            filepath, f = os.path.split(f)
            zf.write(os.path.join(filepath, f) if filepath.strip() else f, f,
                compress_type=zipfile.ZIP_DEFLATED)

def main():
    dozip()
    raw_input("Finished zipping the archive. Press enter to quit ")
    exit()

if __name__ == "__main__":
    main()

Here is a screenshot of winrar

运行win7 x64& python 2.7。

1 个答案:

答案 0 :(得分:0)

这是因为zipfile仅在您关闭存档时计算CRC,因此当您与 在脚本关闭存档之前存档,它将缺少CRC。 因此,您需要在计算CRC之前手动关闭它,否则CRC将为空。

zf.close()结束时致电dozip