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

用户名

如果我知道目录的路径,该如何分别压缩其中的所有文件夹?我做了一些尝试,但是由于我不完全了解os模块的工作原理,因此我无能为力。

import os, zipfile

directory_path = str(raw_input())
for folder in os.listdir(directory_path):
    zip_file = zipfile.ZipFile(folder + '.zip', 'w')
    for root, dirs, files in os.walk(directory_path+'/'+folder):
        for file in files:
            zip_file.write(os.path.join(root, file),file)
    zip_file.close()

问题在于它仅从目录中压缩一个文件夹。

例子:

Directory
 |
 +-- folder1
 |  |  
 |  \-- file 1.1
 |
 +-- folder2
 |  |  
 |  \-- file 2.1
 |    
 +-- folder3
 |  |  
 |  +-- file 3.1
 |  \-- file 3.2

我想要得到的是folder1.zip(包含文件1.1),folder2.zip(包含文件2.1)和folder2.zip(包含文件3.1和文件3.2)

任何帮助表示赞赏。

丹尼尔·潘塔莱内

我认为问题在于您arcname为zip归档文件中的每个文件指定了一个不同的名称(write方法的第二个参数)。尝试以下操作(我还替换了一些代码,例如使用os.path模块而不是字符串连接来连接路径):

import os
import zipfile

path = raw_input('Enter the directory: ')
path = os.path.abspath(os.path.normpath(os.path.expanduser(path)))
for folder in os.listdir(path):
    zipf = zipfile.ZipFile('{0}.zip'.format(os.path.join(path, folder)), 'w', zipfile.ZIP_DEFLATED)
    for root, dirs, files in os.walk(os.path.join(path, folder)):
        for filename in files:
            zipf.write(os.path.abspath(os.path.join(root, filename)), arcname=filename)
    zipf.close()

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将文件夹中的所有子文件夹压缩为单个zip文件

使用Python 2.7.5将文件夹中的所有压缩文件解压缩到同一文件夹

如何使用Grunt压缩子文件夹/子目录中的所有JavaScript文件?

如何解压缩我的子目录中的所有 zip 文件夹?

如何递归压缩目录中的所有子文件夹?

将文件夹目录中的所有.csv文件复制到python中的一个文件夹中

Powershell - 列出目录中的所有文件夹,在每个文件夹中提取最新的 .bak 文件,压缩它,将其复制到一个目录

如何压缩 Bash 中的所有子文件夹?

压缩文件夹名称中没有包含目录的文件夹(tar)

将一个文件夹中的所有未压缩文件压缩成一行

是否可以将目录中的所有文件提取到各自的文件夹中?

抓取目录中的所有文件夹和文件

压缩文件夹及其所有内容,而无需在Python中保留目录结构

将所有捆绑资源复制到 Documents 目录中的单独文件夹中

编写bash文件以为目录中的所有文件夹运行python程序

如何将所有文件夹复制到同一目录中?

将所有根目录移到子文件夹中

将所有文件夹和子文件夹中的每个文件压缩为一个单独的zip文件

如何访问文件夹目录中的所有项目?

列出目录中的所有文件夹(PHP)

触摸目录中的所有文件夹

如何删除文件夹中的所有目录

重命名目录中的所有文件夹

浏览目录中的所有文件夹

在没有“备份”的情况下将FolderA中的所有文件夹压缩到文件夹B中

使用YUI压缩器.NET压缩子文件夹中的所有JS文件

我怎么能压缩在Java中所有子文件夹的完整目录?

在文件夹的所有子目录中创建相同的文件夹

如何为目录中的所有文件夹运行 Python 命令