Warning: ftp_fget() expects parameter 1 to be resource, null given in /www/wwwroot/new.weijing.co/wp-admin/includes/class-wp-filesystem-ftpext.php on line 146

Python解压缩文件方法

工作中经常遇到需要解压各种压缩包的接口需求,包括.tar、.tar.gz、.zip、.rar包,为了避免每次都得重新谷歌,试错调错,我将各种解压的python代码整理出来,下次可以直接拿过来用,建议小伙伴们收藏。

import tarfile
import zipfile
import rarfile
def uncompress(src_file, dest_dir):
    \"\"\"解压各种类型的压缩包
    :param src_file: 你要解压的压缩包文件
    :type src_file: file
    :param dest_dir: 你要解压到的目标路径
    :type dest_dir: str
    \"\"\"
    file_name, file_type = os.path.splitext(src_file.filename)
    try:
        if file_type == \'.zip\':
            # 需要安装zip包:pip install zipp
            zip_file = zipfile.ZipFile(src_file)
            for names in zip_file.namelist():
                zip_file.extract(names, dest_dir)
            zip_file.close()
        elif file_type == \'.rar\':
            # 需要安装rar包:pip install rarfile
            rar = rarfile.RarFile(src_file)
            os.chdir(dest_dir)
            rar.extractall()
            rar.close()
        else:
            # file_type == \'.tgz\' or file_type == \'.tar\' or file_type == \'.gz\'
            # Python自带tarfile模块
            tar = tarfile.open(fileobj=src_file)
            for name in tar.getnames():
                tar.extract(name, dest_dir)
            tar.close()
    except Exception as ex:
        return False
    return True

调用示例:

if __name__ == \'__main__\':
    dest_dir = \'你要解压到的目标路径\'
    with open(\'你要解压的压缩包文件路径\', \'rb\') as src_file:
        result = uncompress(src_file, dest_dir)

注意:liunx解压rar包,需要安装unrar:

$ sudo apt-get install unrar

发表评论

您的电子邮箱地址不会被公开。

Shopping Cart