Я работаю над сценарием для моего класса, чтобы открыть защищенный паролем zip-файл.У меня есть список паролей, по которым нужно циклически проходить.
Я создал скрипт, который отлично выполняет эту функцию, когда я вручную ввожу пароль в поле пароля: ZipFile.setpassword (b'12345 ')
Но я хочу, чтобы вместо этого использовалась переменная passwordattempt, поскольку она циклически перебирает каждую запись в моем списке, как этот ZipFile.setpassword (b'passwordattempt '). Но когда я делаю это, она никогда не работает и не работает.похоже, что он использует пароль, присвоенный переменной.
Я вижу, что он корректно просматривает мой список, используя печать (passattempt)
#################################
## Create a temp list of pass ##
## words from the allpass.txt ##
## file ##
#################################
#Create a temp Library
passwordlib = []
#Open temp allpassword file to put into temp list
with open('allpass.txt', 'r+') as f:
for line in f:
line = line.rstrip("\n")
#print(line)
passwordlib.append(line)
f.close()
#End of temp list creation
#Attempt to open zip file using the list of passwords in passwordlib[]
for line in passwordlib:
passattempt = line.strip('\n')
try:
zip_ref = zipfile.ZipFile("Resources/ZippedFiles/testzip.zip", 'r')
print (passattempt) #Print to confirm passwords are cycling through
zip_ref.setpassword(b'passattempt')
zip_ref.extractall("Resources/ZippedFiles/testout/")
except:
pass #if password is incorrect, ignore Runtime error and move to next password
zip_ref.close()