当前位置:首页 » 文件管理 » python解压zip

python解压zip

发布时间: 2025-02-12 09:08:46

‘壹’ python暴力破解zip加密文件

前言:日常工作中,会遇到一些加密的zip文件,但是因为某些原因或者时间过长,密码不知道了。但是zip文件中文件有很重要很必须。那么,我们试一试万能的Python,暴力破解密码。一、破解zip加密文件的思路:1、准备一个加密的zip文件。2、zipfile模块可以解压zip文件。解压时可以提供密码zfile.extractall("./",pwd=password.encode("utf8"))3、itertools.permutations实现全字符的全排列。通过函数itertools.permutations("abc",3)实现全字符的全排列:abc/acb/bca/bac/cab/cba二:实例代码演示:0、zip的压缩方式:本文介绍的zip文件知道密码一共是4位的,密码字符的范围是a-z1-0。并且不存在重复字符的,不会有“aabb”的密码。zip压缩时是选择了zip传统加密!1、解压zip文件:导入zipfile模块,使用其中的extractall()函数。importitertoolsfilename="readme.zip"#创建一个解压的函数,入参为文件名和密码#并使用try-except,避免报错中断程序。defuncompress(file_name,pass_word):try:withzipfile.ZipFile(file_name)asz_file:z_file.extractall("./",pwd=pass_word.encode("utf-8"))returnTrueexcept:returnFalse2、实现密码字符的全排列:="readme.zip"#创建一个解压的函数,入参为文件名和密码#并使用try-except,避免报错中断程序。defuncompress(file_name,pass_word):try:withzipfile.ZipFile(file_name)asz_file:z_file.extractall("./",pwd=pass_word.encode("utf-8"))returnTrueexcept:returnFalse#chars是密码可能的字符集chars=""forcinitertools.permutations(chars,4):password=''.join(c)print(password)result=uncompress(filename,password)ifnotresult:print('解压失败。',password)else:print('解压成功。',password)break

文件压缩时,一些注意的事项:

三、密码是几位未知,也可以破解密码:

查过一些资料,zip压缩文件密码最长为12位,在原来的程序上增加上一个for循环就可以实现破解密码了。

="readme.zip"defuncompress(file_name,pass_word):try:withzipfile.ZipFile(file_name)asz_file:z_file.extractall("./",pwd=pass_word.encode("utf-8"))returnTrueexcept:returnFalsechars=""foriinrange(12):forcinitertools.permutations(chars,i):password=''.join(c)print(password)result=uncompress(filename,password)ifnotresult:print('解压失败。',password)else:print('解压成功。',password)break总结:此方法可以是实现破解zip文件的密码,python可以完成一些好玩的事情。

‘贰’ 下载python然后有一堆文件要解压

python一堆文件解压方法如下。

压缩包解压要用的是zipfile这个包。

zip_file = zipfile.ZipFile(r'D:数据源XX_%s.zip'%yday)

zip_list = zip_file.namelist() # 压缩文件清单,可以直接看到压缩包内的各个文件的明细

for f in zip_list: # 遍历这些文件,逐个解压出来,

zip_file.extract(f,r'D:数据源')

zip_file.close() # 不能少!

print('昨日日志解压完成,请在文件夹中验收!') # 当然我是不需要查收的(*/ω\*)

这里的解压操作实际就相当于鼠标右键“解压到当前文件夹”的效果。

完成解压后运行.close()是个比较好的习惯,否则可能会导致包括但不限于:

文件会一直被占用着,可能无法重新打开;

在进程结束之前文件都删不掉;

文件内容不能即时 flush 到磁盘直到进程结束;

到此,整个流程在无需打开浏览器和文件夹的情况下便自动完成了。

为了方便日常运行代码,这里把上面的两个流程包装成一个函数,下载解压

#下载昨日日志

def download_XXlog():

yday = (date.today()+timedelta(days=-1)).strftime('%Y%m%d') # 获取昨日日期

r = requests.get('http://XXXXXXXX/XX_%s.zip'%yday) # 获取以日期命名的压缩包信息

with open(r'D:数据源XX_%s.zip'%yday,'wb') as code: # 将压缩包内容写入到 "D:数据源" 下,并按日期命名

code.write(r.content)

print('昨日XX日志下载完成。')

zip_file = zipfile.ZipFile(r'D:数据源XX_%s.zip'%yday)

zip_list = zip_file.namelist() # 压缩文件清单,可以直接看到压缩包内的各个文件的明细

for f in zip_list: # 遍历这些文件,逐个解压出来,

zip_file.extract(f,r'D:数据源')

zip_file.close() # 不能少!

print('昨日日志解压完成,请在文件夹中验收!')

download_XXlog()

拓展

作为拓展,这里再加一个可以根据实际情况输入(input)起始和终止日期,来下载一个特定时间段日志的函数,这里就涉及了datetime和time这两个工具包了。

热点内容
整个服务器搭建教程 发布:2025-02-12 11:48:16 浏览:579
我的世界服务器人多的 发布:2025-02-12 11:48:12 浏览:347
为实现分页存储管理需要哪些硬件支持 发布:2025-02-12 11:46:34 浏览:539
编程下载线 发布:2025-02-12 11:41:48 浏览:210
json存储数据 发布:2025-02-12 11:41:39 浏览:219
天龙八部脚本免费 发布:2025-02-12 11:30:12 浏览:501
卡罗拉的配置一般买哪个好一点 发布:2025-02-12 11:20:03 浏览:743
没有服务器的IP怎么连上 发布:2025-02-12 11:19:55 浏览:80
编程sqs 发布:2025-02-12 11:09:55 浏览:239
electron脱离编译环境 发布:2025-02-12 11:08:21 浏览:69