gpt4 book ai didi

python - 为什么较高的压缩级别会导致较大的 zip 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:36 25 4
gpt4 key购买 nike

见下文。 zlib 的压缩级别越高,文件大小可能越大。为什么?实践中合理的默认压缩级别是多少?

$ cat main.py 
#!/usr/bin/env python3
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:

import sys
import zipfile
z = zipfile.ZipFile(sys.argv[1], 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=int(sys.argv[3]))
z.writestr(sys.argv[2], sys.stdin.read())
z.close()

$ cat main.sh
#!/usr/bin/env bash
# vim: set noexpandtab tabstop=2:

tmpfile=$(mktemp -u --suffix .zip)
set -v
for((i=0;i<=9;++i)); do
echo "==> $i <==" >&2
seq 10000 | ./main.py "$tmpfile" hello.txt "$i"
ls -go "$tmpfile"
done
$ ./m
./main.py ./main.sh
$ ./main.sh
for((i=0;i<=9;++i)); do
echo "==> $i <==" >&2
seq 10000 | ./main.py "$tmpfile" hello.txt "$i"
ls -go "$tmpfile"
done
==> 0 <==
-rw-r--r-- 1 49020 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 1 <==
-rw-r--r-- 1 17271 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 2 <==
-rw-r--r-- 1 17303 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 3 <==
-rw-r--r-- 1 17972 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 4 <==
-rw-r--r-- 1 21936 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 5 <==
-rw-r--r-- 1 22071 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 6 <==
-rw-r--r-- 1 22298 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 7 <==
-rw-r--r-- 1 22298 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 8 <==
-rw-r--r-- 1 22298 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip
==> 9 <==
-rw-r--r-- 1 22298 Aug 29 11:04 /tmp/mktemp/tmp.pAKYRswuW6.zip

最佳答案

对于比字典大小更大的文件,应该测量大小差异。尝试测量 100 Mb 文件的压缩情况。您会看到差异。

关于python - 为什么较高的压缩级别会导致较大的 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com