微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python shutil.make_archive 导致文件比原始文件大

如何解决Python shutil.make_archive 导致文件比原始文件大

我想对一个 49 GB 的文件夹进行 tar 压缩,以便对其进行压缩,但之后不会保留。

我使用下面的代码创建一个临时目录(我选择了父路径)然后shutil.make_archive

import tempfile
import shutil

with tempfile.TemporaryDirectory(dir=temp_dir_path) as temp_output_dir:
    output_path = shutil.make_archive(temp_output_dir,"tar",dir_to_tar)

然而,生成的 tar 文件的大小比我 du -sh 原始文件夹时要大。当它达到 51 GB 时,我停止了代码

我用错了吗?

解决方法

tar (tape archive) 格式不压缩,它只是将文件“归档”在一起(它基本上只是一个目录结构和它包含的文件推到一个文件中)。从定义上讲,它比原始数据

如果您希望压缩 tarball 使其最终小于原始数据,请使用压缩的 The above script refreshes the first excel file and then throws an error. Error : Object invoked disconnected from its clients. 参数之一 to make_archive,例如format(更快、更差的压缩、最便携)或 'gztar'(更慢、最佳压缩、便携性稍差)而不仅仅是 'xztar'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?