基於Python——實現解壓文件夾中的.zip文件


【背景】當一個文件夾里存好好多.zip文件需要解壓時,手動一個個解壓再給文件重命名是一件很麻煩的事情,基於此,今天介紹一種使用python實現批量解壓文件夾中的壓縮文件並給文件重命名的方法——

【代碼實現】

#!/usr/bin/env python
#! -*- coding:utf-8 -*-


import zipfile
import os
import shutil

def un_zip(file_name):
    """解壓單個文件"""
    zip_file = zipfile.ZipFile(file_name)           #讀取zip文件
    if os.path.isdir(file_name[0:-20]):             #判斷是否存在文件夾,file_name[0:20]是為了方便我去掉日期和.zip的后綴
        pass
    else:
        os.mkdir(file_name[0:-20])                 #創建文件夾

    for names in zip_file.namelist():             #解壓
        zip_file.extract(names,file_name[0:-20])
    zip_file.close()
    Conf = os.path.join(file_name[0:-20], 'conf')  # 刪除配置文件,如不需要,可刪除
    shutil.rmtree(Conf)
    if os.path.exists(file_name):                 #刪除zip文件
        os.remove(file_name)
    print file_name[0:-20],'解壓成功'


def un_zip_Tree(path):                        # 解壓文件夾中的zip文件
    if not os.path.exists(path):               # 如果本地文件夾不存在,則創建它
        os.makedirs(path)
    for file in os.listdir(path):               #listdir()返回當前目錄下清單列表
        Local = os.path.join(path, file)        #os.path.join()用於拼接文件路徑
        if os.path.isdir(file):  # 判斷是否是文件
            if not os.path.exists(Local):           #對於文件夾:如果本地不存在,就創建該文件夾
                os.makedirs(Local)
            un_zip_Tree(path)
        else:  # 是文件
            if os.path.splitext(Local)[1] == '.zip':            #os.path.splitext(Remote)[1]獲取文件擴展名,判斷是否為.zip文件
                un_zip(Local)       #解壓文件
un_zip()函數,可實現對傳入的單個.zip文件進行解壓放到新文件夾,並將原來的.zip文件刪除
un_zip_Tree()函數,可實現對傳入的文件夾路徑進行處理:找到文件夾里面的.zip文件,交給un_zip()解壓
if __name__ == '__main__':
    local = raw_input("please input the local path(eg.D:\\V1.6):")
    un_zip_Tree(local)

主函數只需要傳入需要批量解壓的文件夾就可以啦~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM