Python 解压压缩包
程序员文章站
2022-06-04 08:06:29
...
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
'''
Created on 2017年8月22日
@author: ZHANGHENG266
'''
import os
import zipfile
#zip与tar类似,先读取多个文件名称,然后解压。
def un_zip(file_name):
"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(file_name + "_files"):
pass
else:
os.mkdir(file_name + "_files")
for names in zip_file.namelist():
zip_file.extract(names,file_name + "_files/")
zip_file.close()
#def eachfor(pathDir):
#遍历文件夹,并将文件解压到当前目录
def eachFile(filepath):
pathDir = os.listdir(filepath) #获取当前路径下的文件名,返回List
print pathDir
for s in pathDir:
newDir=os.path.join(filepath,s) #将文件命加入到当前文件路径后面
if os.path.isfile(newDir): #如果是文件
if ".zip" in s :
un_zip(newDir)
pathDir1 = os.listdir(filepath)
c= set(pathDir1) - set(pathDir)
for i in c:
eachFile(os.path.join(filepath,i))
else:
break
else:
eachFile(newDir) #如果不是文件,递归这个文件夹的路径
if __name__ == '__main__':
eachFile("D:\Test")
pass
# g = os.walk("D:\Test")
# for path,d,filelist in g:
# print d
# print "lalala"
# for filename in filelist:
# print os.path.join(path, filename)
#遍历文件夹,并将文件解压到当前目录
#def eachFile(filepath):
# pathDir = os.listdir(filepath) #获取当前路径下的文件名,返回List
# while True:
# for s in pathDir:
# newDir=os.path.join(filepath,s)
# print pathDir
# if os.path.isfile(newDir) and ".zip" not in s:
# break
# else:
# for s in pathDir:
# newDir=os.path.join(filepath,s) #将文件命加入到当前文件路径后面
# if os.path.isfile(newDir): #如果是文件
# if ".zip" in s :
# un_zip(newDir)
# pathDir = os.listdir(filepath)
# print pathDir
# else:
# break
# else:
# eachFile(newDir) #如果不是文件,递归这个文件夹的路径