使用Python批量解压缩文件(zip,rar)

2022-02-21 12:09:03

使用Python批量解压缩文件(zip,rar)

我们在前面批量爬取了PPT模板,但是下载的都是压缩文件,要是一个一个解压缩的话会耽误我们很多的时间,于是我们写一个批量解压缩的脚本去做这件事情!
在这里插入图片描述

#-*- coding: utf-8-*-//解压zip文件import zipfileimport osimport sys//reload(sys)//sys.setdefaultencoding('gbk') #如遇到无法识别中文而报错使用

# 将zip文件解压处理,并放到指定的文件夹里面去

defunzip_file(zip_file_name,destination_path):
    archive= zipfile.ZipFile(zip_file_name,mode='r')for filein archive.namelist():
        archive.extract(file, destination_path)

        
a="C:/Users/wy/Desktop/zipfile/zip"  #zipfile 的路径
b="C:/Users/wy/Desktop/zipfile/unzip"   #解压到路径unzip下

defzipfile_name(file_dir):
    # 读取文件夹下面的文件名.zipL=[]for root, dirs, filesin os.walk(file_dir):for filein files:if os.path.splitext(file)[1]=='.zip':    # 读取带zip 文件L.append(os.path.join(root, file))
                #print(L)returnL

#入口函数
defmain():
    fn=zipfile_name(a)for filein fn:unzip_file(file,b)if __name__=="__main__":main()print("done")

#zipfile解压中文zip文件会导致乱码,解决方案是要修改python库中的zipfile.py
#将文件中所有的'cp437'字符替换为'gbk'

发现解压的都是中文乱码,但是里面的内容还好不是中文乱码的,不过解决方案也是有的,只不过博主比较懒,就不改了
在这里插入图片描述
发现解压的都是zip格式的压缩包,zipfile这个库是Python自带的库,但是我们上面的rar格式的压缩包怎么办呢?当然也是有办法解压的,其实这两个库用法都差不多,我在下面写个Demo,由于本人能力有限找不到64位的unrar.dll,于是还有点错误

#-*- coding: utf-8-*-import zipfileimport rarfileimport osfrom unrarimport rarfileimport sysreload(sys)
sys.setdefaultencoding('gbk')

# 将zip文件解压处理,并放到指定的文件夹里面去

defunzip_file(zip_file_name,destination_path):
    archive= zipfile.ZipFile(zip_file_name,mode='r')for filein archive.namelist():
        archive.extract(file, destination_path)

defunrar_file(rar_file_name,destination_path):
    archive= rarfile.RarFile(rar_file_name,mode='r')for filein archive.namelist():
        archive.extract(file, destination_path)
        
a="C:/Users/wy/Desktop/zipfile/zip"  #zipfile 的路径
b="C:/Users/wy/Desktop/zipfile/unzip"   #解压到路径unzip下

defzipfile_name(file_dir):
    # 读取文件夹下面的文件名.zipL=[]for root, dirs, filesin os.walk(file_dir):for filein files:if os.path.splitext(file)[1]=='.zip':    # 读取带zip 文件L.append(os.path.join(root, file))
                #print(L)returnL

defrarfile_name(file_dir):
    # 读取文件夹下面的文件名.rarX=[]for root, dirs, filesin os.walk(file_dir):for filein files:if os.path.splitext(file)[1]=='.rar':    # 读取带rar 文件X.append(os.path.join(root, file))
                #print(X)returnX

defmain():
    fn=zipfile_name(a)
    bn=rarfile_name(a)for filein fn:unzip_file(file,b)for filein bn:unrar_file(file,b)if __name__=="__main__":main()print("done")

#zipfile解压中文zip文件会导致乱码,解决方案是要修改python库中的zipfile.py,将文件中所有的'cp437'字符替换为'gbk'

由于我下载不到64位的unrar.dll,如果有人解决这个问题,请指教,不胜感激
在这里插入图片描述
在这里插入图片描述

  • 作者:冷色调的夏天
  • 原文链接:https://blog.csdn.net/qq_40695642/article/details/100170316
    更新时间:2022-02-21 12:09:03