• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

怎么用python做一个解压缩小工具以后再也不用下载各种格式的解压缩软件了

python 搞java代码 3年前 (2022-05-21) 16次浏览 已收录 0个评论

常常因为各种压缩格局的不一样用到文件的解压缩时就须要下载不同的解压缩工具去解决不同的文件,以至于桌面上的压缩工具就有三四种,于是应用python做了一个蕴含各种常见格局的文件解压缩的小工具。

浏览全文

常见的压缩格局次要是上面的四种格局:

zip 格局的压缩文件,个别应用360压缩软件进行解压缩。
tar.gz 格局的压缩文件,个别是在linux零碎下面应用tar命令进行解压缩。
rar 格局的压缩文件,个别应用rar压缩软件进行解压缩。
7z 格局的压缩文件,个别应用7-zip压缩软件进行解压缩。

导入zip格局的解压缩解决的非标准库。

import os
import zipfile as zip

编写zip解压缩格局的文件压缩函数。

def do_zip(source_, target_file):
    '''
    zip文件压缩
    :param source_: 原始文件门路
    :param target_file: 指标文件门路
    :return:
    '''
    zip_file = zip.ZipFile(target_file, 'w')
    pre_len = len(os.path.dirname(source_))
    for parent, dirnames, filenames in os.walk(source_):
        for filename in filenames:
            print(f'{filename}')
            path_file = os.path.join(parent, filename)
            arcname = path_file[pre_len:].strip(os.path.sep)
            zip_file.write(path_file, arcname)

    zip_file.close()

编写zip解压缩格局的文件解压缩函数。

def un_zip(source_file, target_):
    '''
    zip文件解压缩
    :param source_file: 原始文件门路
    :param target_: 指标文件门路
    :return:
    '''
    zip_file = zip.ZipFile(source_file)
    if os.path.isdir(target_):
        pass
    else:
        os.mkdir(target_)
    for names in zip_file.namelist():
        zip_file.extract(names, target_)
    zip_file.close()

导入7z格局的解压缩解决的非标准库。

import py7zr

编写7z解压缩格局的文件压缩函数。

def do_7z(source_, target_file):
    '''
    7z文件压缩
    :param source_:
    :param target_file:
    :return:
    '''
    with py7zr.SevenZipFile(target_file, 'r') as file:
        file.extractall(path=source_)

编写7z解压缩格局的文件解压缩函数。

def un_7z(source_file, target_):
    '''
    7z文件解压缩
    :param source_file:
    :param target_:
    :return:
    '''
    with py7zr.SevenZipFile(source_file, 'w') as file:
        file.writeall(target_)

导入rar格局的解压缩解决的非标准库。

import rarfile as rar

编写rar解压缩格局的文件解压缩函数。

def un_rar(source_file, target_):
    '''
    rar文件解压缩
    :param source_file: 原始文件
    :param target_: 指标文件门路
    :return:
    '''
    obj_ = rar.RarFile(source_file.decode('utf-8'))
    obj_.extractall(target_.decode('utf-8'))

接下来开始进入正题了,首先应用print函数打印一下菜单选项,能够让用户在启动软件后进行菜单的抉择。

print('==========PYTHON工具:文件解压缩软件==========')
print('阐明:目前反对zip、7z、rar格局')
print('1、文件解压缩格局:zip/rar/7z')
print('2、文件操作类型(压缩/解压):Y/N')
print('3、文件门路抉择,须要输出相应的操作文件门路')
print('==========PYTHON工具:文件解压缩软件==========')

应用input函数接管用户输出的文件解压缩格局。

format_ = input('请输出文件解压缩的格局:\n')

应用input函数接管用户输出的文件操作类型(压缩/解压)。

type_ = input('请输出文件操作的类型:\n')

应用input函数接管用户输出的须要操作的文件门路。

source_ = input('请输出原始文件的存储门路(文件或目录):\n')

应用input函数接管用户输出的生成的新文件的指标门路。

target_ = input('请输出指标文件的存储门路(文件或目录):\n')

为了放弃输出的灵活性,退出不同格局不同操作类型的业务判断。

if format_ == 'zip' and type_ == 'Y':
    do_zip(source_, target_)
elif format_ == 'zip' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'N':
    un_zip(source_, target_)

目前性能点是做了三种格局,前期若是须要可能会扩大降级以后的版本。欢送大家在评论区留言,提供比拟新的思路~

【往期精彩】

python中最简略的turtle绘图:奥运五环!

常识汇总:python办公自动化应该学习哪些内容?

python多线程同步售票零碎解决思路…

发现几个好玩的游戏编程平台,与君共勉!

python四个性能检测工具,包含函数的运行内存、工夫等等…


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:怎么用python做一个解压缩小工具以后再也不用下载各种格式的解压缩软件了

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址