def my_directory_walker_with_size_counting(topdir=None):
if topdir is None:
topdir = os.getcwd()
sizes = {topdir: 0}
root_stack = []
current_root_size = 0
def inner_walker(new_topdir):
root_stack.append(new_topdir)
new_topdir_path = os.path.join(*root_stack)
# TODO: PRACA DOMOWA: doda? obs?ug? b??dów
entries = os.scandir(new_topdir_path)
size = 0
for entry in entries:
if entry.is_dir(follow_symlinks=False):
entry_size = inner_walker(entry.name)
sizes[os.path.join(*root_stack)] = entry_size
size += entry_size
root_stack.pop()
elif entry.is_file(follow_symlinks=False):
sizes[os.path.join(*root_stack, entry.name)] = entry.stat().st_size
size += entry.stat().st_size # os.path.getsize
return size
inner_walker(topdir)
return sizes
file_walker_cwiczenia.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录