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

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

基于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('完成!')

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5070390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存