最近需要批量解压zip文件,需要一个如下图的功能:
主要解决以下问题
如果zip里没有单独的文件夹,文件会直接塞满./
有损坏的zip会直接停掉解压
zip文件名里有空格
使用方法:
python3 unzip.py ./
python3 unzip.py name/name/
效果:
-a.zip
-b.ZIP
-a
--file
--file1
-b
--file
--file1
代码:
import os
import sys
rdir = sys.argv[1]
assert os.path.exists(rdir)
if(rdir[-1]=='/'): rdir=rdir[:-1]
exts = ['.zip',]
dirlist = os.listdir(rdir+'/')
for di in dirlist:
if os.path.isfile(di):
#过滤后缀名
for ext in exts:
if di[-len(ext):].lower() == ext:
print(di)
#新建目录
if not os.path.exists(rdir+'/'+di[:-len(ext)]):
os.mkdir(rdir+'/'+di[:-len(ext)])
#解压
os.system('unzip "%s/%s" -d "%s/%s"' % (rdir, di, rdir, di[:-len(ext)]))
break