доступ к python запрещен при вычислении размера диска c - PullRequest
1 голос
/ 05 марта 2019

Я использую следующую функцию для вычисления размера каталога с использованием Python

def get_path_size(path):
    total_size = 0
    for path, dirs, files in os.walk(path):
        for f in files:
            fp = os.path.join(path, f)
            total_size += os.path.getsize(fp)

    return total_size

Я протестировал его со многими каталогами, но он не работает, когда я пытаюсь вычислить размердиск C

print(get_path_size("C:/"))

OSError: [WinError 1920] Системе не удается получить доступ к файлу: 'C: / Users \ asus \ AppData \ Local \ Microsoft \ WindowsApps \ MicrosoftEdge.exe'

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

1 Ответ

1 голос
/ 05 марта 2019

В конкретном случае, когда вы ищете использование накопителя, я бы предложил вам использовать shutil:

import shutil
shutil.disk_usage("C:")

Выход:

usage(total=498439548928, used=204051705856, free=294387843072)

Обратите внимание, что естьнебольшое расхождение со значением, указанным в графическом интерфейсе, из-за того, что зарезервированное место на диске не учитывается, поэтому оно может не подходить для ваших нужд.

...