最近用到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('完成!')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)