@dstoric543

Как исправить ошибку FileNotFoundError: [Errno 2] No such file or directory:?

В директории 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)
  • Вопрос задан
  • 1289 просмотров
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Используйте pathlib.Path
Объекты Path соединяются через «/», например:
from pathlib import Path
my_root = Path('c:')
my_dir = Path('new_dir')
my_file = Path('new_file.txt')
full_file_path = my_root / my_dir / my_file
print(full_file_path)
print(type(full_file_path))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы