gpt4 book ai didi

python - tar (Unix) 和 tarfile (Python) 之间的根本区别是什么?

转载 作者:行者123 更新时间:2023-12-04 12:21:06 26 4
gpt4 key购买 nike

使用 tar 为文件夹添加 tar 的根本区别是什么?在 Unix 和 tarfile 上在 Python 中会导致不同的文件大小?
在下面的示例中,有 8.2 MB 的差异。我目前使用的是 Mac。本示例中的文件夹包含一堆用于测试的文本随机文本文件。tar -cvf archive_unix.tar files/python -m tarfile -c archive_pycli.tar files/ # using Python 3.9.6

-rw-r--r--  1 userid  staff  24606720 Oct 15 09:40 archive_pycli.tar
-rw-r--r-- 1 userid staff 16397824 Oct 15 09:39 archive_unix.tar

最佳答案

有趣的问题。 tarfile 的文档
( https://docs.python.org/3/library/tarfile.html ) 提到
tarfile 创建的 tar 存档的默认格式是,因为python
3.8, PAX_FORMAT而由 tar 创建的文件命令有
我相信 GNU 格式解释了这种差异。
现在生成与 tar 相同的存档命令和一个
默认格式(正如您的命令所做的那样):

import tarfile
with tarfile.TarFile(name='archive-py-gnu.tar', mode='w', format=tarfile.GNU_FORMAT) as tf:
tf.add('tmp')
with tarfile.TarFile(name='archive-py-default.tar', mode='w') as tf:
tf.add('tmp')
比较:
$ tar cf archive-tar.tar tmp/
$ ls -l
3430400 16:28 archive-py-default.tar
3317760 16:28 archive-py-gnu.tar
3317760 16:27 archive-tar.tar
file的结果命令:
$ file archive_unix.tar
archive_unix.tar: POSIX tar archive (GNU)
$ file archive-py-gnu.tar
archive-py-gnu.tar: POSIX tar archive (GNU)
$ file archive-py-default.tar
archive-py-default.tar: POSIX tar archive
现在我不能告诉你不同格式之间的区别,
对不起。但我希望这会有所帮助。

关于python - tar (Unix) 和 tarfile (Python) 之间的根本区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69585800/

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