gpt4 book ai didi

python - 如何将zip文件中的文件复制到某个目录?

转载 作者:行者123 更新时间:2023-11-30 22:53:30 24 4
gpt4 key购买 nike

我只需要 500 个 zip 文件中的每一个中的一个子文件,路径是相同的,例如:

120132.zip/A/B/C/target_file
212332.zip/A/B/C/target_file
....

如何将所有这些目标文件复制到一个目录中?将整个路径保留在新目录中将是最好的,我的意思是:

target_dir/
120132/A/B/C/target_file
212332/A/B/C/target_file
......

我尝试使用 Python 模块 zipfileshutil

但是,shutil 中的 copyfile 将整个路径作为参数,但是当我尝试直接复制目标文件时,它将引发 filenotfind 错误。当通过 zipfile.Zipfile 解压缩时,目标文件将可以访问,但copyfile变得无效。

我怎样才能正确有效地做到这一点?

最佳答案

ZipFile.extract接受可选的 path 指定将文件提取到哪个目录:

import os
import zipfile

zip_filepath = ['120132.zip', '212332.zip', ...] # or glob.glob('...zip')
target_dir = '/path/to/target_dir'

for path in zip_filepath:
with zipfile.ZipFile(path) as zf:
dirname = os.path.join(
target_dir, os.path.splitext(os.path.basename(path))[0]
)
zf.extract('A/B/C/target_file', path=dirname)

关于python - 如何将zip文件中的文件复制到某个目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38160310/

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