python解压压缩包 Python自动化解压多种格式的压缩文件 python
目录
- 1. 使用场景
- 2. 准备WinRAR压缩工具
- 3.准备测试文件
- 4. 基础实现代码
- 5. 操作演示
- 6.完整实现代码
h2>1. 使用场景
现自动化解压多种格式的压缩文件,包括.zip、.rar和.7z格式。
h2>2. 准备WinRAR压缩工具
官网下载并安装WinRAR
录WinRAR.exe文件路径(默认安装位置如下)
:Program FilesWinRARWinRAR.exe
装示意图:
h2>3.准备测试文件
.将包含文件的本地文件夹分别压缩为三种格式:
- TEST2ZIP.7z
- TEST2ZIP.rar
- TEST2ZIP.zip
.创建目标文件夹TEST1RAR用于存放解压文件
h2>4. 基础实现代码
例代码如下
npack_test.py
mport subprocessimport osdef unpack(filepath, target_folder): 获取文件目录和名称 dir_folder = os.path.dirname(filepath) file_name_pre = os.path.splitext(os.path.basename(filepath))[0] print(“当前目录:”, dir_folder) print(“文件名:”, file_name_pre) 配置WinRAR命令 command = [ ‘C:\Program Files\WinRAR\WinRAR.exe’, ‘x’, 解压保留目录结构 os.path.abspath(filepath), target_folder.rstrip(‘\’) + ‘\’, ‘-o+’, 覆盖已有文件 ‘-y’ 自动确认 ] print(“执行命令:”, ” “.join(command)) result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) return target_folderif __name__ == ‘__main__’: 测试配置(可切换不同格式) file_pack = r’D:重载TEST2ZIP.zip’ file_pack = r’D:重载TEST2ZIP.7z’ file_pack = r’D:重载TEST2ZIP.rar’ target_folder = r’D:重载TEST1RAR’ unpack(file_pack, target_folder)
h2>5. 操作演示
.在unpack_test.py目录打开CMD
. 执行解压命令
y unpack_test.py
行后输出如下
. 检查解压结局
件夹已存在,打开可查看打包前的文件夹内容
h2>6.完整实现代码
例代码如下
npack_test.py
需引入的库import subprocessimport os 解压通用函数入口def unpack(filepath, target_folder): 获取文件所在目录 dir_folder = os.path.dirname(filepath) print(“dir_folder—-> “,dir_folder) 获取文件名(包含后缀,如test1.rar、test2.zip、test3.7z) file_name_all = os.path.basename(filepath) print(“file_name_all—-> “,file_name_all) 将文件名和后缀分开,获取分割后的数组 file_name_all_list = os.path.splitext(file_name_all) print(“file_name_all_list—-> “,file_name_all_list) 获取文件名(不包含后缀,如test1) file_name_pre = file_name_all_list[0] 以上注释代码的整合 目的为了获取压缩包文件名(不带后缀) file_name_pre = os.path.splitext(os.path.basename(filepath))[0] print(“file_name_pre—-> “,file_name_pre) 除了指定固定的输出目录,还可以使用文件名作为输出目录 将rar文件所在目录和文件名(不包含后缀)拼接,成为文件夹的路径,用于解压后存储文件 target_folder = os.path.join(dir_folder, file_name_pre) print(“target_folder—-> “,target_folder) if not os.path.exists(target_folder): os.makedirs(target_folder) 本地winrar命令集成 command = [ 本地WinRAR.exe文件路径 ‘C:\Program Files\WinRAR\WinRAR.exe’, 解压并保留完整目录结构 ‘x’, 传入源RAR文件的完全路径(引号包裹,防止路径中有空格) os.path.abspath(filepath), 目标目录(确保路径以一个反斜杠结束,否则WinRAR会出错),如果该参数省略,则会默认为当前目录 target_folder.rstrip(‘\’) + ‘\’, 覆盖已存在的文件 ‘-o+’, 将压缩包名称作为子目录添加到目标路径中,如果添加该参数,则压缩包名称会作为子目录添加到目标路径中,产生两层一样的目录 ‘-ad’, 后台运行 ‘-ibck’, 自动确认所有提示 ‘-y’ ] print(“正在执行命令:”, ” “.join(command)) 运行命令 subprocess本身会处理空格难题 result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) 返回目标目录 return target_folderif __name__ == ‘__main__’: 测试rar解压 file_pack = r’D:重载TEST2ZIP.rar’ target_folder = r’D:重载TEST1RAR’ 测试7z解压 file_pack = r’D:重载TEST2ZIP.7z’ target_folder = r’D:重载TEST1RAR’ 测试zip解压 file_pack = r’D:重载TEST2ZIP.zip’ target_folder = r’D:重载TEST1RAR’ unpack(file_pack, target_folder)
此这篇关于Python自动化解压多种格式的压缩文件(支持.zip/.rar/.7z格式)的文章就介绍到这了,更多相关Python解压文件内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
无论兄弟们可能感兴趣的文章:
- Python实现批量解压文件夹下所有压缩包
- Python实现解压当天创建的ZIP文件到指定文件夹中
- Python实现批量压缩解压文件(zip、rar)
- 基于Python自制一个文件解压缩小工具
- Python文件的压缩与解压
- 基于Python实现文件的压缩与解压缩
