如何使用 python 读取压缩文件夹文件?
Posted
技术标签:
【中文标题】如何使用 python 读取压缩文件夹文件?【英文标题】:How can I read a compressed folder file using python? 【发布时间】:2015-12-12 11:47:58 【问题描述】:我可以使用gzip
压缩单个文件,但不能使用它压缩文件夹。我用这个:
tar = tarfile.open("TarName.tar.gz", "w:gz")
tar.add("folder/location", arcname="TarName")
tar.close()
文件夹被压缩了,如何解压?或者还有其他方法可以压缩文件夹吗?对了,请添加解压方式。非常感谢
【问题讨论】:
我认为您将不得不采取类似***.com/a/1855118/2548351 中的一些方法。 @caiohamamura 非常感谢,我试试看。 您是否尝试解压缩.tar.gz
文件?
@KevinGuan 我写的代码是我在网上找到的,我不知道为什么是.tar.gz
,我想要的是压缩/解压缩一个文件夹。现在我还在尝试其他一些方法。
【参考方案1】:
你只需要打开 tarfile 并解压:
import tarfile
with tarfile.open("TarName.tar.gz") as tar:
tar.extractall()
您需要了解的所有内容都在文档中的大量 examples 中提供。 如果您担心外部文件,您可以采取this question中的一种方法
【讨论】:
非常感谢,我从您的代码中得到了正确答案。extractall
is dangerous 并且应该不与不受信任的输入一起使用。
@JonasWielicki,如果 OP 正在创建文件,有什么问题?他们要求一种解压缩方法,这就是 extractall 正在做的事情以及文档示例中使用的内容
@PadraicCunningham 我想我会提到它,以防将来有人查看这个问题而没有创建文件。我们也不知道 OP 如何处理文件,例如它们是否通过不受信任的路径或类似的方式自动传输。【参考方案2】:
相反,您可以使用tarfile
库打开tar.gz
档案。
为此,您可以使用模式r:gz
。
Python 文档中有一个关于数据压缩和归档的部分,您可能会喜欢:https://docs.python.org/2/library/archiving.html
对于文件夹,zip 和 tar.gz 模块是标准库中的两个可用模块。
最后,我建议你看看with
关于打开/关闭模式的语句的容量。
【讨论】:
是的,你是对的,with
是打开/关闭模式的更好选择。
我已经阅读了docs
,但说实话,我没有找到压缩/解压缩文件夹的方法。以上是关于如何使用 python 读取压缩文件夹文件?的主要内容,如果未能解决你的问题,请参考以下文章