经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用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_):passelse: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制作一个文件解压缩工具相关推荐

  1. python制作一个桌面小工具

    python实现一个桌面小工具,制作一个桌面的便签提醒工具 参考代码:https://github.com/cosven/memo 参考链接:https://www.jb51.net/article/ ...

  2. 手把手教你制作一个文件加密工具

    目录 一.前言 二.思路 (1)加密算法的实现 (二)GUI等的实现 三.代码实现 一.前言 现在,互联网上的安全问题越来越严重.我们的文件虽然有杀毒软件保护,但光使用杀毒软件也不是完全安全的.于是, ...

  3. python小工具开发_使用Python制作一个桌面小工具

    今天,我们制作一个有意思的小工具,利用Python获取历史上的今天发生的事情. [分析] 个人总结了一下,"历史上的今天"有很多调用接口.有很多调用接口都是收费的或者就是免费但限制 ...

  4. 用Python制作一个文件加密器(支持中文)

    文章目录 1.1 前言 1.2 下载地址 1.3 效果预览 2.1 加密算法 总结 1.1 前言 因为一些懂得都懂的原因,我的父母对于我电脑上的文件内容特别感兴趣.为了防止信息泄露,我连夜用Pytho ...

  5. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  6. python编写一个软件-使用python制作一个解压缩软件

    python实现解压缩的重要模块就是――zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  7. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  8. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  9. python打字_使用Python制作一个打字训练小工具

    一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码 ...

最新文章

  1. 如何使用Java获取当前日期/时间
  2. 4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授
  3. LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView
  4. 用python输入名字并打印_python的输出与输入
  5. 年轻人还有机会征服这个世界吗?
  6. html常用标签6-表单标签
  7. 蔚来:首台ET7白车身合肥工厂下线
  8. C# DateTime类
  9. oracle not in 改为 not exist
  10. yacc和lex细节解答以及实现反向自动微分
  11. 张宇基础30讲 第17讲-元函数积分学基础知识
  12. PDFEdit编辑器使用教程为PDF增加封面
  13. vscode 软件 git提交代码步骤(结合webstorm软件)
  14. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(21):常用方阵函数的一些性质
  15. 相当全的JS及.NET正则表达式语法
  16. 面试官:现在还有不会音视频的Android开发?
  17. linux skyeye,移植LINUX到SKYEYE上
  18. 王者转号仅显示可转移的服务器,王者荣耀转移账号是免费的吗 角色转移进度怎么查看...
  19. 【系统分析师之路】第三章 复盘企业信息化战略(DSS,ERP,CRM,PDM)
  20. What Is New About NewSQL(NewSQL的独到之处)?

热门文章

  1. 设计分享|单片机花样流水灯
  2. 机房收费系统之软件需求说明书
  3. 【HDOJ】1018 Big Number_天涯浪子_新浪博客
  4. <Squeezing Backbone Feature Distributions to the Max for Efficient Few-Shot Learning>
  5. 什么软件可以一键抠图?这篇文章告诉你
  6. 替代MS visio的解决方案
  7. STM32F103配合STM32CubeMX实现SPI读写flash
  8. # 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性
  9. 微博008广告联盟给我启示
  10. PHP影视源码 米酷CMS影视系统6.27修复版