一. 读取 rar 文件
Python 中 python-unrar
模块依赖于 UnRAR library
, 所以需要先安装 UnRAR library
1. 安装 UnRAR library
在官网可以找到各种版本的安装包, 下面给出 Linux 版安装的说明
$ cd ~
$ wget http://www.rarlab.com/rar/unrarsrc-5.2.6.tar.gz
$ tar -xvf unrarsrc-5.2.6.tar.gz
$ cd unrar
$ make lib
$ sudo make install-lib
安装好的文件存在 /usr/lib/libunrar.so
2. 安装 python-unrar
安装 unrar
$ pip install unrar
测试
$ python
>>> from unrar import rarfile
如果遇到下面的错误
表明 unrar
没有找到刚才安装的依赖文件, 这时需要将依赖文件添加为环境变量
打开配置文件
$ vim ~/.bash_profile
写入
export UNRAR_LIB_PATH="/usr/lib/libunrar.so"
使配置生效
$ source ~/.bash_profile
3. 读取 rar 压缩文件夹
- 获取压缩文件夹包含的文件列表
def get_rar_dir(rar_file_path):
'''获取rar压缩文件夹dir'''
rar = rarfile.RarFile(path)
rar_dir = rar.namelist()
return rar_dir
- 获取压缩文件夹中某个 CSV 文件, 并转为 DataFrame
def read_rar(rar_file_path, csv_file_name):
'''读取rar压缩文件夹中的某个csv文件'''
rar = rarfile.RarFile(path)
data = rar.open(rar.namelist()[0])
df = pd.read_csv(data, header=None)
return df
二. 解压 zip 文件
1. 安装 zipfile
在 Python 中安装 zipfile
需要根据 Python 版本来安装, 对于 3.7 版本, 运行下面的命令
sudo pip3 install zipfile37
2. 读取 zip 文件
import zipfile
# 读取 zip 中的 CSV 文件并返回 DataFrame
def read_zip(zip_file_path, csv_file_name):
'''读取zip压缩文件夹中的某个csv文件'''
_zip = zipfile.ZipFile(zip_file_path)
data = _zip.open(csv_file_name)
df = pd.read_csv(data, header=None)
return df
# 读取 zip 文件夹的目录
def get_zip_dir(zip_file_path):
'''获取zip压缩文件夹dir'''
_zip = zipfile.ZipFile(zip_file_path)
zip_dir = _zip.namelist()
return zip_dir