gpt4 book ai didi

python - 提取给定目录中具有目录路径的所有文件

转载 作者:太空狗 更新时间:2023-10-29 21:22:54 25 4
gpt4 key购买 nike

我有一个 tar 存档,其中有一个目录,我需要将其提取到给定目录中。例如:我有一个目录

TarPrefix/x/y/z

在 tar 存档中,我想将其解压缩到给定的目标目录中,例如:extracted/a/此目录应包含目录 TarPrefix/x/y/z 中包含的所有文件和目录。

subdir_and_files = [  tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]

获取目录路径“subfolder/”中所有成员的列表,然后使用 tar.extractall(extracted/a,subdir_and_files) 提取它但它会提取所有成员及其目录路径 例如,这会导致 extracted/a/x/y/z。你能帮我把这些文件解压到给定的文件夹中吗?

最佳答案

看起来您可能已经找到了答案,但无论如何这是我的版本:

import sys, tarfile

def get_members(tar, prefix):
if not prefix.endswith('/'):
prefix += '/'
offset = len(prefix)
for tarinfo in tar.getmembers():
if tarinfo.name.startswith(prefix):
tarinfo.name = tarinfo.name[offset:]
yield tarinfo

args = sys.argv[1:]

if len(args) > 1:
tar = tarfile.open(args[0])
path = args[2] if len(args) > 2 else '.'
tar.extractall(path, get_members(tar, args[1]))

关于python - 提取给定目录中具有目录路径的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8259769/

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