importosabspath=lambda*p:os.path.abspath(os.path.join(*p))defget_dirs_for_path(*paths):""" Returns list of directories, including intermediate. """forpathinpaths:head=pathwhilehead:head,tail=os.path.split(head)ifhead:yieldheadelse:# We don't need to yield empty pathbreakdefget_dir_size(path):root_path=pathsize=0forpath,dirs,filesinos.walk(root_path):forfinfiles:try:size+=os.path.getsize(os.path.join(path,f))exceptOSError:passreturnsizedefget_user_home():""" Returns home path of the user. """returnos.getenv('HOME',os.getenv('USERPROFILE'))or''