python 用0000-9999的密码解压文件夹,一直输出解压


import zipfile
filename = "C:/Users/86181/Desktop/新建文件夹/机密.zip"
def uncompress(filename, passward):
    try:
        with zipfile.ZipFile(filename, "r") as zfile:
            zfile.extractall(path = "C:/Users/86181/Desktop", pwd = passward.encode("utf-8"))
        return True
    except:
        return False
for i in range(10000):
    password = "{:04d}".format(i)
    result = uncompress(filename, password)
    if  not result:
        print("解压失败",password)
    else:
        print("解压成功",password)
        break

请教一下大家哪里错了

你先把try去掉看看出了什么错误信息

测试使用winrar,在压缩文件中设置默认密码时,需要勾选“zip传统加密”,用如下代码测试可遍历出结果。

import itertools
import zipfile
filename = r"F:\2021\qa\ot2\t1.zip"
def uncompress(filename,password):
    try:
        with zipfile.ZipFile(filename,'r') as zfile:
            zfile.extractall(path=r"F:\2021\qa\ot2\imgs", pwd=password.encode('utf-8'))
        return True
    except:
        return False
chars = "1234567890"
for c in itertools.permutations(chars,4):
    password = "".join(c)
    print(password)
    result = uncompress(filename,password)
    if result:
        print("解压成功",password)
        break        
    else:
        print("解压失败", password)

如对你有帮助,请点采纳。