使用zipfile,python自带模块,解压zip文件:
代码块
import os
import zipfile
import time
def unzipfile(file_dir, file_name, filelist):
'''
:param file_dir: 绝对路径
:param file_name: 解压文件名
:param filelist: 返回解压后的所有文件名
:return:
'''
#汉字转码
file_name=file_name.decode('utf8')
full_name = '%s/%s' % (file_dir, file_name)
result = 'success'
if not zipfile.is_zipfile(full_name):
result = 'make sure the file is .zip'
return result
try:
fz = zipfile.ZipFile(full_name, 'r')
# 由于解压后是许多文件,预先建立同名文件夹
# 绝对路径uncom_dir
uncom_dir = '%s/%s' % (file_dir, file_name) + str(time.time())
if os.path.isdir(uncom_dir):
pass
else:
os.mkdir(uncom_dir)
#解压文件
for file in fz.namelist():
fz.extract(file, uncom_dir)
filelist.append(uncom_dir + '/' + file)
except Exception:
result = "can't unzip file"
return result
flist=[]
print unzipfile('E\:','大名.zip',flist)
print flist
打印
success
[u’E://\u5927\u540d.zip1487828592.82/\u54c8\u54c8.txt’, u’E://\u5927\u540d.zip1487828592.82/b.txt’]