В директории e:/1 есть файл и подпапки, в которых также имеются файлы. Нужно зашифровать все файлы в каталоге и подкаталогах. Само собой в каталоге я смог выполнить это действие, смог прочитать и записать в переменную "catalogi" и смог зашифровать указанный мной каталог, но при попытки использования переменной catalogi (в которой находятся директории) вызываемой os.scandir мне выдаёт ошибку:
FileNotFoundError: [Errno 2] No such file or directory: 'e:/1\\Новая папка — копия (6)Новый текстовый документ.txt'
В строке 23
read_file = open(catalogi+entry.name, 'rb').read()
Помогите решить.
import os, sys
from cryptography.fernet import Fernet
for catalogi, subdirs, files in os.walk('e:/1'):
for name in files:
print(os.path.join(catalogi))
key = Fernet.generate_key()
if not os.path.exists('pass.txt'):
with open('pass.txt', 'wb') as f:
f.write(key)
else:
key = open('pass.txt', 'rb').read()
print(key)
cipher = Fernet(key)
encrypt_yes = True
if encrypt_yes:
with os.scandir(path=catalogi) as it:
for entry in it:
if not entry.is_file():
print("dir:\t" + entry.name)
else:
read_file = open(catalogi+entry.name, 'rb').read()
encrypted_file_content = cipher.encrypt(read_file)
with open(catalogi+entry.name, 'wb') as f:
f.write(encrypted_file_content)
print("file encrypted:\t" + entry.name)
else:
with os.scandir(path=catalogi) as it:
for entry in it:
if not entry.is_file():
print("dir:\t" + entry.name)
else:
encrypted_file_content = open(catalogi+entry.name, 'rb').read()
file_content = cipher.decrypt(encrypted_file_content)
with open(catalogi+entry.name, 'wb') as f:
f.write(file_content)
print("file decrypted:\t" + entry.name)