通过首先归档目录中的所有单个文件来创建目录的归档 (Python)

用户6167676

我有一个dir包含 3 个文件的目录f1.txt, f2.txt, f3.pngt.

我想根据该目录的路径创建一个zip 存档 其中每个文件都是一个 zip 存档结果zipped_archive.zip应该与现在的路径相同dir

也就是说,我希望zipped_archive.zip包含f1.zip, f2.zipf3.zip其中每个f#.zip文件都包含相应命名的txtpng文件。

用这个文件结构更好地说明了上面的内容

tmp
 |
 +-- dir
 |    |
 |    +-- f1.txt
 |    +-- f2.txt
 |    +-- f3.txt
 |
 +-- zipped_archive.zip
 |          |
 |          +-- f1.zip
 |          |     |
 |          |     +-- f1.txt
 |          +-- f2.zip
 |          |     |
 |          |     +-- f2.txt
 |          +-- f3.zip
 |          |     |
 |          |     +-- f3.png

我已经尝试zipfile按照这个答案shutil看到的这个答案申请,都来自同一个问题。我虽然shutil.make_archive在每个文件上使用,最后还是ziph.write用那个结果做一个,但我努力让它工作并感到困惑。

有人可以建议/提供一些示例代码来帮助我理解这是如何工作的吗?

李相福

试试这个。

import os
import zipfile

target = "dir"
os.chdir(target)  # change directory to target
files = os.listdir('.')  # get all filenames into a list

zipfiles = []  # a list which will be used later for containing zip files
for i in range(len(files)):
    fn = files[i].split('.')[0] + '.zip'  # f#.??? -> f#.zip
    zipf = zipfile.ZipFile(fn, 'w', zipfile.ZIP_DEFLATED)
    zipf.write(files[i])
    zipf.close()
    zipfiles.append(fn)  # put f#.zip into the list for later use

zipf = zipfile.ZipFile('../zipped_archive.zip', 'w', zipfile.ZIP_DEFLATED)
for i in range(len(zipfiles)):
    zipf.write(zipfiles[i])
    os.remove(zipfiles[i])  # delete f#.zip after archiving

zipf.close()
os.chdir('..')  # change directory to target's parent

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中对目录中的所有文件或仅基于args的单个文件执行函数

打开目录中的所有文件 - Python

如何在当前目录中创建所有以g开头的文件的归档?

使用Python处理单个目录中的所有图像的脚本

Python-在移至另一个目录之前将文件归档吗?

从zip归档文件中提取单个文件,而无需遍历Python中的整个名称列表

如何在python中打开目录中的所有文件?

如何使用7z归档目录中的所有文件和目录(包括隐藏的文件和目录)?

python 有没有办法通过从 conf 文件中读取源目录和目标目录来移动 Windows 上的文件?

WinRAR Explorer显示子文件夹中归档根目录中的所有文件

在python中读取当前目录中所有文件的内容

在寡妇中使用python列出目录中的所有文件

使用Python从目录中读取所有csv文件

Python从目录中获取所有文件错误

使用Python删除目录中的所有文件

Python压缩目录脚本中的所有文件失败

如何使用python动态列出目录中的所有文件?

使用Python重命名目录中的所有文件

Python:将目录中的所有文件夹压缩

对目录中的所有excel文件执行python脚本

使用 Python 修改目录中的所有文件(循环)

创建tar归档文件时添加目录

为当前目录中的每个目录创建单独的7z归档文件,并通过GNU Parallel进行并行化

重命名tar归档文件中的目录

Python列出子目录中的所有文件,但排除某些目录

python读取目录和子目录中的所有文件

Python计算目录及其所有子目录中的文件

在python中从多个文件创建目录

使用python在目录中创建文件