栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于python的支持zip文件下有中文路径及中文文件的解压缩函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于python的支持zip文件下有中文路径及中文文件的解压缩函数

基于python的支持zip文件下有中文路径及中文文件的解压缩函数

最近用到zipfile这个库,发现中文名解压缩出来有问题,在参考了中文解压缩的代码后再进行了一些改进,所以mark一下。
该函数输入原zip文件路径file_path,和新文件夹路径new_path即可解压缩。
直接上代码:

import os
import zipfile

def zip_decompress(file_path, new_path):
    '''支持中文的解压缩程序
       file_path:原zip文件路径
       new_path:新文件夹路径
'''
    z = zipfile.ZipFile(f'{file_path}', 'r')
    z.extractall(path=f"{new_path}")
    
    for root,dirs,files in os.walk(new_path):
        for d in dirs:
            try:
                new_dname = d.encode('cp437').decode('gbk')
                os.rename(os.path.join(root, d), os.path.join(root, new_dname))
            except:
                new_dname = d.encode('cp437').decode('utf-8')
                os.rename(os.path.join(root, d), os.path.join(root, new_dname))  
    for root,dirs,files in os.walk(new_path):
        for f in files:
            try:
                new_name = f.encode('cp437').decode('gbk')
                os.rename(os.path.join(root, f), os.path.join(root, new_name))
            except:
                new_name = f.encode('cp437').decode('utf-8')
                os.rename(os.path.join(root, f), os.path.join(root, new_name))     
    z.close()
    # print('完成!')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422913.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号