python解壓zip
文件壓縮時,一些注意的事項:
三、密碼是幾位未知,也可以破解密碼:查過一些資料,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這兩個工具包了。