首页 > 解决方案 > 在 Python 中删除压缩文件夹

问题描述

我确实是 python 的新手,并试图学习一些东西。我有一个 python 脚本,它基本上从源的压缩压缩文件夹中解压缩并将所有内容提取到目标文件夹。添加了我还想在提取源内容后删除它。我将如何实现这一目标?提前感谢您的帮助!

基本上,在这个路径“ L:\Python\Source Zipped files ”中,我有多个压缩文件夹。我的查询,解压缩每个文件夹并提取到最终目的地。我正在寻找一种方法,例如首先解压缩第一个文件夹,然后提取然后将其从源文件夹中删除。包括源文件夹的外观片段。

在此处输入图像描述

这是我的查询

        import os
        import zipfile
        import shutil
        import json

        data_dir = r'L:\Python\Source Zipped files'
        temp_dir =  r'L:\Python\temp1'
        new_dir = r'L:\Python\temp2'
        final_dir = r'L:\Python\Destination Unzipped files'

        big_list = os.listdir(data_dir)

        archive_count = 0
        file_count = 152865
        basename1 = os.path.join(final_dir,'GENERIC_ROUGHDRAFT')
        basename2 = os.path.join(final_dir,'XACTDOC')

        my_time()
        archive_count = len(big_list)
        logging.info('Unzipping {} archives...'.format(archive_count))
        for folder in big_list:
            prior_count = file_count
            logging.info('Starting: {}'.format(folder))

            try:
                shutil.rmtree(temp_dir)
            except FileNotFoundError: 
                pass
            os.mkdir(temp_dir)
            with zipfile.ZipFile(os.path.join(data_dir,folder),mode='r') as a_zip:
                a_zip.extractall(path = temp_dir)
                archive_count += 1
                logging.info('Cumulative total of {} archive(s) unzipped'.format(archive_count))
                bigger_list = os.listdir(temp_dir)
                logging.info('Current archive contains {} subfolders'.format(len(bigger_list)))
                for sub_folder in bigger_list:
                    with zipfile.ZipFile(os.path.join(temp_dir,sub_folder),mode='r') as b_zip:
                        b_zip.extractall(path = new_dir)
                    file1 = "%s (%d).%s" % (basename1, file_count, 'xml')
                    file2 = "%s (%d).%s" % (basename2, file_count, 'xml')
                    shutil.copy(os.path.join(new_dir, 'GENERIC_ROUGHDRAFT.xml'), file1)
                    shutil.copy(os.path.join(new_dir, 'XACTDOC.xml'), file2)
                    file_count += 1
                logging.info('{} subfolders unzipped'.format(file_count - prior_count))

            my_time()
        logging.info('Total of {0} files -- {1} pairs -- should be in {2}'.format(2*(file_count-1), file_count-1, final_dir))

        time.sleep(1)

        my_time()

标签: pythonpython-3.xunzip

解决方案


推荐阅读