我的脚本正在用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。
答案 0 :(得分:0)
这是因为zipfile仅在您关闭存档时计算CRC,因此当您与 在脚本关闭存档之前存档,它将缺少CRC。 因此,您需要在计算CRC之前手动关闭它,否则CRC将为空。
在zf.close()
结束时致电dozip
。