実現したいこと
指定ディレクトリ内の各ファイル・フォルダのサイズを表示したい
前提
PC(windows10)のSSDの空き容量が少なくなってきて容量を確保したいもののディレクトリ構成を整理できていないのでループでサイズを表示して何が容量を食ってるのか知りたかったです.
発生している問題・エラーメッセージ
PermissionError: [WinError 5] アクセスが拒否されました。
該当のソースコード
Python
1# %% 2import os 3import glob 4# %% 5def get_dir_size(path='.'): 6 total = 0 7 with os.scandir(path) as it: 8 for entry in it: 9 if entry.is_file(): 10 total += entry.stat().st_size 11 elif entry.is_dir(): 12 total += get_dir_size(entry.path) 13 return total 14# %% 15dir = glob.glob(rf'C:\Users\hoge\*') 16# %% 17for i in range(len(dir)): 18 print(rf'{i}:{dir[i]}') 19 print(get_dir_size(dir[i]))
試したこと
- anaconda command promptを管理者として開いて実行した
- 指定ディレクトリを読み取り専用の設定を解除した
エラーメッセージ全文を載せましょう。
ですね.投稿した瞬間に気づきました.
以下全文です.
PermissionError Traceback (most recent call last)
Cell In[9], line 3
1 for i in range(len(dir)):
2 print(rf'{i}:{dir[i]}')
----> 3 print(get_dir_size(dir[i]))
d:\pythonsourcefolder\get_dir_size.py in line 9, in get_dir_size(path)
10 total += entry.stat().st_size
11 elif entry.is_dir():
----> 12 total += get_dir_size(entry.path)
13 return total
d:\pythonsourcefolder\get_dir_size.py in line 9, in get_dir_size(path)
10 total += entry.stat().st_size
11 elif entry.is_dir():
----> 12 total += get_dir_size(entry.path)
13 return total
d:\pythonsourcefolder\get_dir_size.py in line 4, in get_dir_size(path)
5 def get_dir_size(path='.'):
6 total = 0
----> 7 with os.scandir(path) as it:
8 for entry in it:
9 if entry.is_file():
PermissionError: [WinError 5] アクセスが拒否されました。: 'C:\\Users\\hoger\\AppData\\Local\\Application Data'
