python解压zip文件,不保留zip文件目录结构的方法 |
您所在的位置:网站首页 › js文件解压缩到根目录的方法 › python解压zip文件,不保留zip文件目录结构的方法 |
python解压zip文件,不保留zip文件目录结构的方法
python可以使用内置zipfile模块的extract或extractall方法解压zip文件,但是解压的文件会保留其在zip中的目录结果,有时不需要保留目录结构,想把文件提取到指定目录下平铺展开,可以使用以下方法 方法一使用open方法打开zip中的文件,再把文件复制到指定文件中 import os import shutil import zipfile my_dir = r"D:\Download" my_zip = r"D:\Download\my_file.zip" with zipfile.ZipFile(my_zip) as zip_file: for member in zip_file.namelist(): filename = os.path.basename(member) # skip directories if not filename: continue # copy file (taken from zipfile's extract) source = zip_file.open(member) target = open(os.path.join(my_dir, filename), "wb") with source, target: shutil.copyfileobj(source, target) 方法二遍历ZipFile.infolist(), 修改ZipInfo对象的filename属性,使用extract方法提前到指定目录 import glob import zipfile import shutil import os my_dir = "D:\\Download\\" my_zip = "D:\\Download\\my_file.zip" with zipfile.ZipFile(my_zip) as zip: for zip_info in zip.infolist(): if zip_info.filename[-1] == '/': continue zip_info.filename = os.path.basename(zip_info.filename) zip.extract(zip_info, my_dir) 方法三read方法读取zip指定文件,再写入到目标问题,python3.6以上可以使用pathlib.Path from pathlib import Path import zipfile import os my_dir = Path("D:\\Download\\") my_zip = my_dir / "my_file.zip" zip_file = zipfile.ZipFile(my_zip, 'r') for files in zip_file.namelist(): data = zip_file.read(files, my_dir) myfile_path = my_dir / Path(files.filename).name myfile_path.write_bytes(data) zip_file.close() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |