Ваша проблема в том, что в вашем l oop есть ошибка. У меня нет большого опыта работы с glob, но вы можете попробовать что-то вроде этого:
from cryptography.fernet import Fernet
import os
import glob
mainfolderlocation = os.path.dirname(os.path.abspath(__file__))
keyfolderlocation = mainfolderlocation+'\Keys'
messagefolderlocation = mainfolderlocation+'\Messages'
files = []
folder = input('Choose folder:\n')
os.chdir(keyfolderlocation+'\{}'.format(folder))
for file in glob.glob(file+'.key'):
filek = open(file, 'rb')
key = filek.read()
filek.close()
if os.path.exists(folder):
for r, d, f in os.walk(folder):
for file in f:
if '.key' in file:
files.append(os.path.join(r, file))
else:
print('\nThis folder does not exist!')
for i in files:
try:
filem = open(i, 'rb')
encrypted = filem.read()
filem.close()
filename= os.path.splitext(i)[0]
f = Fernet(key)
decrypted = f.decrypt(encrypted)
decode=decrypted.decode('utf-8')
print(decode)
except:
print('\nThis folder does not exist!')
Итак, по сути дела, вы берете любой свой ключ (будьте осторожны, если у вас более одного ключа. файл у вас будут проблемы), составьте список всех файлов в каталоге папки, если он существует, а затем для каждого из этих файлов откройте его, прочитайте содержимое, расшифруйте его и распечатайте. У меня не было возможности проверить это.
Вы также можете подумать о том, чтобы добавить расшифровку в функцию и вызывать ее для каждого файла, вместо того, чтобы она была монолитной c, но это всего лишь стилистический выбор c. Также я поместил захват ключа над блоком try, потому что вы хотите захватить ключ только один раз, иначе вы потеряете производительность, установив переменную в то же значение. Если вы не используете разные файлы ключей для каждого файла, в этом случае вы можете создать словари для каждой пары, чтобы «bananasandwich.txt» соответствовал «bananasandwich.key». Желаем удачи!