重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如何在python中使用7z解压rar文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
目前创新互联已为上1000+的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、思礼网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
# coding:utf-8 import os import zipfile import traceback import time import shutil import sys,getopt succeedpath="" unsucceedpath="" psds={"2018","123456"} opts,args=getopt.getopt(sys.argv[1:],"p:") path=args[0] for psd in args[1:]: psds.add(psd) #for op,value in opts: # if op in ("-p","--password"): # psds.add(value) def mkdirs(dirpath): global succeedpath,unsucceedpath succeedpath=os.path.join(dirpath,"0.succeed") unsucceedpath=os.path.join(dirpath,"0.unsucceed") if(not os.path.exists(succeedpath)): os.makedirs(succeedpath) if(not os.path.exists(unsucceedpath)): os.makedirs(unsucceedpath) def extractdir(path): for filename in os.listdir(path): filepath=os.path.join(path,filename) if(os.path.isfile(filepath)): extractfile(filepath) def extractfile(path): (dirpath,filen)=os.path.split(path) print("解压"+filen+" ing...") try: if(filen.endswith(".rar") or filen.endswith(".zip")): path=os.path.abspath(path) dirpath=os.path.abspath(dirpath) cmd="7z x "+path+" -o"+dirpath+" -y "+" -p" state=False if(os.system(cmd)==0): state=True else: for psd in psds: cmdp="7z x "+path+" -p"+psd+" -y "+" -o"+dirpath if(os.system(cmdp)==0): state=True break else: return if (state): shutil.move(path,succeedpath) else: shutil.move(path,unsucceedpath) with open(os.path.join(dirpath,"errorinfo.txt"),"a+") as errorinfo: errorinfo.write("time:"+str(time.time())+"\n") errorinfo.write("解压出错!\n可能是密码错误!\n") except : with open(os.path.join(dirpath,"errorinfo.txt"),"a+") as errorinfo: errorinfo.write("time:"+str(time.time())+"\n") errorinfo.write("解压出错!\n") traceback.print_exc(file=errorinfo) shutil.move(path,unsucceedpath) if(os.path.isdir(path)): dirpath=path mkdirs(dirpath) extractdir(dirpath) elif(os.path.isfile(path)): filepath=path (dirpath,filename)=os.path.split(path) mkdirs(dirpath) extractfile(path) else: print("输入错误!请重新输入!")
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联成都网站设计公司行业资讯频道,感谢您对创新互联成都网站设计公司的支持。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。