список файлов диска HDD

Ошибка `PermissionError: [WinError 5] Отказано в доступе` возникает потому, что у скрипта нет прав доступа к некоторым системным папкам, например, к корзине `D:\$RECYCLE.BIN\...`.

Чтобы избежать этой ошибки, нужно обрабатывать исключения при попытке зайти в папку, к которой нет доступа. Вот исправленный вариант вашего Python-скрипта с обработкой ошибок доступа:


```python

import os

def tree_file(path, indent=0, file=None):
    try:
        items = os.listdir(path)
    except PermissionError:
        if file:
            file.write(' ' * indent + '[Доступ запрещён]\n')
        return
    except Exception as e:
        if file:
            file.write(' ' * indent + f'[Ошибка: {e}]\n')
        return

    for item in items:
        line = ' ' * indent + item
        if file:
            file.write(line + '\n')
        full_path = os.path.join(path, item)
        if os.path.isdir(full_path):
            tree_file(full_path, indent + 4, file)

with open('D_drive_tree.txt', 'w', encoding='utf-8') as f:
    tree_file('D:\\', 0, f)
```



- Добавлен `try-except` вокруг `os.listdir(path)` — если доступ запрещён,
просто записываем в файл сообщение и пропускаем эту папку.
- При других исключениях тоже записываем ошибку, чтобы не прерывать выполнение.
- Добавлен параметр `file` для записи результата в файл.

*

Запустите этот скрипт — он должен пройти по всем доступным папкам и вывести структуру в файл `D_drive_tree.txt`, пропуская недоступные.

также я могу помочь сделать более сложный вывод с размерами или другими параметрами.


Рецензии