當前位置:首頁 » 文件管理 » 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 12:16:08 瀏覽:672
javathread源碼 發布:2025-02-12 12:12:37 瀏覽:907
整個伺服器搭建教程 發布: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