【问题标题】:Untar gzip to different directories将 gzip 解压到不同的目录
【发布时间】:2022-11-13 06:17:07
【问题描述】:

我有一个 .tar.gz 文件,其中可能包含以下文件:

folder1/folder2/folder3/imp_folder1/file11.jpg
folder1/folder2/folder3/imp_folder1/file12.jpg
folder1/folder2/folder3/imp_folder2/file21.jpg
folder1/folder2/folder3/imp_folder3/file31.jpg
...
...

我想将它解压到以下目录:

/new_folder1/new_folder2/imp_folder1/file11.jpg
/new_folder1/new_folder2/imp_folder1/file12.jpg
/new_folder1/new_folder2/imp_folder2/file21.jpg
/new_folder1/new_folder2/imp_folder3/file31.jpg
...
...

基本上,“folder1/folder2/folder3/”应该替换为“/new_folder1/new_folder2/”。而且,如果“imp”目录不存在,那么我必须创建它们

现在我有一个循环遍历 tar 中的所有成员并创建文件夹名称然后执行以下操作的实现

input_file  = tar.extractfile (member)
with open (image_path_local, 'w') as output_file:
     output_file.write(input_file.read())
input_file.close()

这个过程太慢了。 由于有很多文件(大约 100k),实现这一目标的最快方法是什么?

【问题讨论】:

  • 您发布的代码似乎很难优化。如果您要解析 tar 文件两次,这可能是您可以避免的。

标签: python tar tarfile


【解决方案1】:

你需要使用 - 转换焦油的选项。 This 发帖讨论了使用该选项解决类似问题。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2021-02-09
    • 1970-01-01
    • 2011-02-26
    • 2014-10-21
    • 2012-06-26
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多