gpt4 book ai didi

python - 从 tar 中仅提取一个目录(在 python 中)

转载 作者:太空狗 更新时间:2023-10-29 19:35:32 26 4
gpt4 key购买 nike

我正在用 python 开发一个项目,我只需要提取 tar 存档的一个子文件夹,而不是所有文件。我试着用

tar = tarfile.open(tarfile)
tar.extract("dirname", targetdir)

但这不起作用,它不会提取给定的子目录,也不会抛出异常。我是 python 的初学者。此外,如果上述功能对目录不起作用,那么此命令和 tar.extractfile() 之间有什么区别?

最佳答案

基于 tarfile module documentation 中的第二个示例,您可以使用如下内容提取包含的子文件夹及其所有内容:

with tarfile.open("sample.tar") as tar:
subdir_and_files = [
tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]
tar.extractall(members=subdir_and_files)

这将创建子文件夹及其内容的列表,然后使用推荐的 extractall() 方法仅提取它们。当然,将 "subfolder/" 替换为您要提取的子文件夹的实际路径(相对于 tar 文件的根目录)。

关于python - 从 tar 中仅提取一个目录(在 python 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008829/

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