系统: Windows10_64位
Python版本: 3.7
一. Zip文件的解压和压缩
0. 准备
zipfile模块是python的内嵌模块,所以不需要安装
1. 解压zip文件
比较简单,直接上代码
import zipfile
'''
zip_file_name: 待解压的zip文件
data_dir: 解压文件的存放路径
'''
f = zipfile.ZipFile(zip_file_name, "r")
f.extractall(path=data_dir)
f.close()
注意: 此方法只能解压zip文件,不能解压rar、tar等压缩文件,暂时还没有找到通用的解压方法。。。
2. zip压缩文件
import zipfile
'''
target: zip压缩文件路径
filename: 要压缩的文件路径
file_url: 要压缩文件在压缩文件夹内的路径(一般是filename的去掉前面一部分的相对路径,如果不去会压缩绝对路径)
'''
f = zipfile.ZipFile(target, 'w', zipfile.ZIP_DEFLATED)
f.write(filename, file_url)
f.close()
关于参数:
zipfile.ZipFile()的参数:
ZIP_DEFLATED:表示压缩, ZIP_STORE:表示只打包,不压缩。
allowZip64:一般当文件大小大于2GB时,将其设置为True
3. zip压缩文件夹
def zip_dirs(dir_list:list, zip_filename):
zip_file = zipfile.ZipFile(zip_filename, "w", zipfile.ZIP_DEFLATED, allowZip64=True)
for dir_path in dir_list:
parent_dir = os.path.dirname(dir_path)
for path, dir_list, file_list in os.walk(dir_path):
# 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
file_path = path.replace(parent_dir, "")
for filename in file_list:
zip_file.write(os.path.join(path, filename), os.path.join(file_path, filename))
zip_file.close()
二. 解压RAR文件(有坑)
1. 安装unrar模块
pip install unrar 或 pip install rarfile
2. 引入rarfile模块并使用
from unrar import rarfile
file = rarfile.RarFile('file_name') #这里写入的是需要解压的文件,别忘了加路径
file.extractall('you_want_path') #这里写入的是你想要解压到的文件夹
但是这样会报错:
LookupError: Couldn't find path to unrar library.
意思是找不到 unrar library的路径,这里我们就需要去下载这个unrar library,事实上它就是UnRAR.dll这个东西,下载网址:http://www.rarlab.com/rar/UnRARDLL.exe 或者去http://www.rarlab.com/rar_add.htm找到UnRAR.dll下载,在lunix下应该需要自己编译。
3. 添加环境变量
找到安装目录,将其添加到环境变量,64位的需要将x64文件夹添加环境变量
注意: 因为unrar模块识别的文件是unrar.dll和unrar.lib,所以将文件夹中的UnRAR.dll和UnRAR.lib用小写重命名。Windows64位的还要将X64下面的UnRAR64.lib和UnRAR64.dall改为unrar.lib和unrar.dall去掉64且为小写。
添加完成后重启pycharm即可(不生效的话需要重启电脑生效)。
——End——
LookupError: Couldn’t find path to unrar library.
Unrar解压缩.rar文件