使用zipfile
库帮助我们实现解压缩包的功能:
zf = zipfile.ZipFile(file_name, mode='r') # 以只读模式解析压缩包
然后就是一个个文件的提取与保存:
for in_zip_file in zf.namelist():
zf.extract(in_zip_file, unzip_dir)
示例程序
import zipfile
import os
def readfile(path):
files = os.listdir(path)
file_list = []
for file in files: # 遍历文件夹
if not os.path.isdir(file):
file_list.append(path + '/' + file)
return file_list
def read_and_extract_zip(file_name):
"""读取zip文件"""
zf = zipfile.ZipFile(file_name, mode='r')
unzip_dir = os.path.dirname(os.path.realpath(__file__)) + '/unzip_dir' # 解压压缩包
for in_zip_file in zf.namelist():
zf.extract(in_zip_file, unzip_dir) # 解压到zip目录文件下
# 循环读取解压后的文件
for _file in readfile(unzip_dir):
print(_file)
def main():
zip_file = read_and_extract_zip("xxx.zip")
if __name__ == '__main__':
main()