由于压缩格式不同,解压文件时经常需要下载不同的解压文件压缩工具处理不同的文件,以至于桌面上有三四个压缩工具,于是我用python做了一个小工具,里面有各种常见格式的文件解压。阅读全文常见的压缩格式主要有以下四种格式:zip格式的压缩文件,一般使用360压缩软件解压。tar.gz格式的压缩文件在Linux系统上一般使用tar命令解压。rar格式的压缩文件一般都是用rar压缩软件解压的。7z格式的压缩文件一般使用7-zip压缩软件解压。导入非标准库,用于zip格式的解压处理。importosimportzipfileaszip写一个zip解压格式的文件压缩函数。defdo_zip(source_,target_file):'''zip文件压缩:paramsource_:原始文件路径:paramtarget_file:目标文件路径:return:'''zip_file=zip.ZipFile(target_file,'w')pre_len=len(os.path.dirname(source_))forparent,dirnames,filenamesinos.walk(source_):forfilenameinfilenames: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解压格式的文件解压函数。defun_zip(source_file,target_):'''zip文件解压:paramsource_file:原始文件路径:paramtarget_:目标文件路径:return:'''zip_file=zip.ZipFile(source_file)ifos.path.isdir(target_):passelse:os.mkdir(target_)fornamesinzip_file.namelist():zip_file.extract(names,target_)zip_file.close()导入7z格式解压处理的非标准库。importpy7zr编写7z解压格式的文件压缩函数。defdo_7z(source_,target_file):'''7z文件压缩:paramsource_::paramtarget_file::return:'''withpy7zr.SevenZipFile(target_file,'r')asfile:file.extractall(path=source_)写一个7z解压格式的文件解压函数。defun_7z(source_file,target_):'''7z文件解压:paramsource_file::paramtarget_::return:'''withpy7zr.SevenZipFile(source_file,'w')asfile:file.writeall(target_)importArar格式解压处理的非标准库。importrarfileasrarwriterardecompressionformat文件解压功能。defun_rar(source_file,target_):'''rar文件解压:paramsource_file:原始文件:paramtarget_:目标文件路径:return:'''obj_=rar.RarFile(source_file.decode('utf-8'))obj_.extractall(target_.decode('utf-8'))接下来进入正题。首先,使用打印功能打印菜单选项,让用户在启动软件后选择菜单。print('===========PYTHON工具:文件解压软件==========')print('说明:目前支持zip、7z、rar格式')print('1.文件解压格式:zip/rar/7z')print('2.文件操作类型(压缩/解压):是/否')print('3.文件路径选择,需要输入对应的操作文件路径')print('==========PYTHON工具:文件解压软件===========')使用input函数接收用户输入的文件解压格式。format_=input('请输入文件解压格式:\n')使用input函数接收用户输入的文件操作类型(压缩/解压)。type_=input('请输入文件操作类型:\n')使用input函数接收用户需要操作的文件路径。source_=input('请输入原文件(文件或目录)的存放路径:\n')使用input函数接收用户输入的生成的新文件的目标路径。target_=input('请输入目标文件(文件或目录)的存放路径:\n')为了保持输入的灵活性,增加了不同格式、不同类型操作的业务判断。如果format_=='zip'andtype_=='Y':do_zip(source_,target_)elifformat_=='zip'andtype_=='N':un_zip(source_,target_)elifformat_=='rar'andtype_=='Y':un_zip(source_,target_)elifformat_=='rar'andtype_=='N':un_zip(source_,target_)elifformat_=='7z'andtype_=='Y':un_zip(source_,target_)elifformat_=='7z'andtype_=='N':un_zip(source_,target_)目前的功能点是制作三种格式。如有必要,当前版本可能会在以后进行扩展和升级。欢迎大家在评论区留言,提供更新的思路~【之前精彩】python最简单画龟:奥运五环!知识总结:python办公自动化应该学什么?Python多线程同步票务系统解决思路...发现了几个有趣的游戏编程平台,鼓励一下!Python四大性能测试工具,包括函数运行内存、时间等...
