700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python批量解压rar和zip的压缩包

python批量解压rar和zip的压缩包

时间:2020-08-08 09:48:20

相关推荐

python批量解压rar和zip的压缩包

文章目录

一、学习目标:1、安装模块:2、rarfile.RarCannotExec: Cannot find working tool问题:3、批量解压代码:

一、学习目标:

批量解压一个目录下的所有rar和zip的压缩包。

之前只是解压zip,今天想解压的里面也有rar,奈何之前脚本跑不了,然后就优化了下。

我之前的俩篇博客:

python 解压zip压缩文件,并且还原中文文件名乱码问题

python对window对一个目录下的所有子目录批量压缩

1、安装模块:

pip install rarfile

2、rarfile.RarCannotExec: Cannot find working tool问题:

解压rar会报错:

这个我在本机电脑找到了,放到了蓝奏云上面。需要的下载即可。

下载文件:/ikZcNkw4kkb

然后把文件放到项目的Scripts目录下面。

参考文章:

/weixin_30389003/article/details/99440841

3、批量解压代码:

import zipfileimport osfrom pathlib import Pathimport rarfileimport osdef unzip_file(file_zip_path):new_zip_dir = file_zip_path.rsplit('\\',1)[0] + '/data'if not os.path.isdir(new_zip_dir):os.makedirs(new_zip_dir)zFile = zipfile.ZipFile(file_zip_path, "r")# ZipFile.namelist(): 获取ZIP文档内所有文件的名称列表for fileM in zFile.namelist():# zFile.extract(fileM, new_zip_dir)# 解压出来单个文件extracted_path = Path(zFile.extract(fileM,new_zip_dir))# print("fileM.encode('cp437').decode('gbk')",fileM.encode('cp437').decode('gbk'))# print("extracted_path",extracted_path)# 文件重命名,将中文的文件名还原extracted_path.rename(new_zip_dir+'//'+fileM.encode('cp437').decode('gbk'))zFile.close()return new_zip_dirdef unrar_file(filename):new_zip_dir = filename.rsplit('\\', 1)[0] + '/data'if not os.path.isdir(new_zip_dir):os.makedirs(new_zip_dir)rar = rarfile.RarFile(filename, mode='r') # mode的值只能为'r'rar.extractall(new_zip_dir) # 解压文件rar.close() # 关闭文件,必须有,释放内存if __name__ == '__main__':dir_path = r"压缩包的目录"file_name_list = os.listdir(dir_path)for file_name in file_name_list:file_name_path = os.path.join(dir_path,file_name)if os.path.isfile(file_name_path):print("准备解压",file_name_path)if file_name.endswith('.zip'):unzip_file(file_name_path)elif file_name.endswith('.rar'):unrar_file(file_name_path)else:print("不是压缩文件",file_name_path)else:print("不是文件",file_name_path)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。