您当前的位置: 首页 >  Python

庄小焱

暂无认证

  • 2浏览

    0关注

    805博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python——实现文件夹下多级别多文件解压

庄小焱 发布时间:2021-03-02 16:18:49 ,浏览量:2

摘要

程序语言python——实现文件夹下的多级别多文件的解压源代码

 源代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@version: 1.0
@author: xjl
@file: unzip2.py
@time: 2021/2/28 14:27
@target :该文件的主要是用于的解压文件夹以及子文件下面的相关的zip 文件包并删除原来的文件zip
"""
import zipfile
import os
import shutil

def unzip(dirpath):

    """传入的是zip的文件路径 解压zip文件在当前目录中"""
    zip_file = zipfile.ZipFile(dirpath)  # 获取压缩文件
    newfilepath = dirpath.split(".", 1)[0].replace("【瑞客论坛 www", "") # 获取压缩文件的文件名
    if os.path.isdir(newfilepath):  # 根据获取的压缩文件的文件名建立相应的文件夹
        pass
    else:
        os.mkdir(newfilepath)
    for name in zip_file.namelist():  # 解压文件
        zip_file.extract(name, newfilepath)
    zip_file.close()

    # 判断解压或的文件中是否存在的zip文件
    file_name(newfilepath)

    # 如存在配置文件,则删除(需要删则删,不要的话不删)
    Conf = os.path.join(newfilepath, 'conf')
    if os.path.exists(Conf):
        shutil.rmtree(Conf)
    # 删除原先压缩包
    if os.path.exists(dirpath):
        os.remove(dirpath)
    print("解压{0}成功".format(dirpath))

def file_name(path):
    filenames = os.listdir(path)  # 获取目录下所有文件名
    for filename in filenames:
        print(filename)
        #判断是否是文件夹 如果是文件夹的继续获取下一个文件的目录
        if os.path.isdir(os.path.join(path,filename)):
            # 如果是文件的话 就继续获取的下一级文件
            newpath=os.path.join(path,filename);
            file_name(newpath)
        else:
            #解压zip文件
            if os.path.splitext(filename)[1] == '.zip':
                newpath = os.path.join(path, filename);
                unzip(newpath)


if __name__ == '__main__':
    zippath="填写你的文件的路径"
    file_name(zip)

关注
打赏
1657692713
查看更多评论
立即登录/注册

微信扫码登录

0.0386s