admin管理员组文章数量:1632155
使用Python批量解压缩文件(zip,rar)
我们在前面批量爬取了PPT模板,但是下载的都是压缩文件,要是一个一个解压缩的话会耽误我们很多的时间,于是我们写一个批量解压缩的脚本去做这件事情!
# -*- coding: utf-8 -*-
//解压zip文件
import zipfile
import os
import sys
//reload(sys)
//sys.setdefaultencoding('gbk') #如遇到无法识别中文而报错使用
# 将zip文件解压处理,并放到指定的文件夹里面去
def unzip_file(zip_file_name,destination_path):
archive = zipfile.ZipFile(zip_file_name,mode='r')
for file in archive.namelist():
archive.extract(file, destination_path)
a = "C:/Users/wy/Desktop/zipfile/zip" #zipfile 的路径
b = "C:/Users/wy/Desktop/zipfile/unzip" #解压到路径unzip下
def zipfile_name(file_dir):
# 读取文件夹下面的文件名.zip
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.zip': # 读取带zip 文件
L.append(os.path.join(root, file))
#print(L)
return L
#入口函数
def main():
fn=zipfile_name(a)
for file in 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 zipfile
import rarfile
import os
from unrar import rarfile
import sys
reload(sys)
sys.setdefaultencoding('gbk')
# 将zip文件解压处理,并放到指定的文件夹里面去
def unzip_file(zip_file_name,destination_path):
archive = zipfile.ZipFile(zip_file_name,mode='r')
for file in archive.namelist():
archive.extract(file, destination_path)
def unrar_file(rar_file_name,destination_path):
archive = rarfile.RarFile(rar_file_name,mode='r')
for file in archive.namelist():
archive.extract(file, destination_path)
a = "C:/Users/wy/Desktop/zipfile/zip" #zipfile 的路径
b = "C:/Users/wy/Desktop/zipfile/unzip" #解压到路径unzip下
def zipfile_name(file_dir):
# 读取文件夹下面的文件名.zip
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.zip': # 读取带zip 文件
L.append(os.path.join(root, file))
#print(L)
return L
def rarfile_name(file_dir):
# 读取文件夹下面的文件名.rar
X=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.rar': # 读取带rar 文件
X.append(os.path.join(root, file))
#print(X)
return X
def main():
fn=zipfile_name(a)
bn=rarfile_name(a)
for file in fn:
unzip_file(file,b)
for file in bn:
unrar_file(file,b)
if __name__ == "__main__":
main()
print("done")
#zipfile解压中文zip文件会导致乱码,解决方案是要修改python库中的zipfile.py,将文件中所有的'cp437'字符替换为'gbk'
由于我下载不到64位的unrar.dll,如果有人解决这个问题,请指教,不胜感激
版权声明:本文标题:使用Python批量解压缩文件(zip,rar) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729114383a1187140.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论