【问题标题】:how to zip multiple files inside subfolder files in respective paths如何在相应路径的子文件夹文件中压缩多个文件
【发布时间】:2022-11-03 01:15:58
【问题描述】:

我是python的新手请告诉我如何分别压缩子文件夹中存在的文件下面是我的代码,但它不起作用任何人都可以指导我

导入操作系统导入压缩文件

for folder, subfolders, files in os.walk('DATA'):

    for file in files:
        if file.endswith('.txt'):
            with zipfile.ZipFile(file[0:-4] + '.zip', 'w') as fzip:
                fzip.write(os.path.join(folder, file),
                                os.path.relpath(os.path.join(folder, file), 'DATA'),
                                compress_type=zipfile.ZIP_DEFLATED)
.txt file path:-  
DATA\1\AA.txt 
DATA\2\AB.txt 
DATA\3\AC.txt
DATA\4\AD.txt 
DATA\5\AE.txt 
DATA\6\AF.txt 
DATA\7\AG.txt

zip file should be created in: -

D:\DATA\1\AA.txt & AA.zip 
D:\DATA\2\AB.txt & AB.zip 
D:\DATA\3\AC.txt & AC.zip 
D:\DATA\4\AD.txt & AD.zip 
D:\DATA\5\AE.txt & AE.zip
D:\DATA\6\AF.txt & AF.zip 
D:\DATA\7\AG.txt & AG.zip

【问题讨论】:

    标签: python


    【解决方案1】:

    最好的方法是这样的:

    import os
    import zipfile
        
    def zipdir(path, ziph):
        # ziph is zipfile handle
        for root, dirs, files in os.walk(path):
            for file in files:
                ziph.write(os.path.join(root, file), 
                           os.path.relpath(os.path.join(root, file), 
                                           os.path.join(path, '..')))
    
    with zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED) as zipf:
        zipdir('tmp/', zipf)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      相关资源
      最近更新 更多