import os from datetime import datetime from flask import current_app as app def file_date_human(num): return datetime.fromtimestamp( num ).strftime(app.config['DATE_FORMAT']) def file_stat(filename): s = os.stat(filename) return { 'size': file_size_MB(s.st_size), 'mtime': file_date_human(s.st_mtime), 'name': os.path.basename(filename) } def file_size_human(num,HTML=True): space = ' ' if HTML else ' ' for x in [space + 'B', 'KB', 'MB', 'GB', 'TB']: if num < 1024.0: if x == space + 'B': return "%d%s%s" % (num, space, x) return "%3.1f%s%s" % (num, space, x) num /= 1024.0 def file_size_MB(num): return "{:,.2f}".format(num/(1024*1024)) def get_folder_size(path): total_size = 0 for dirpath, dirnames, filenames in os.walk(path): for f in filenames: fp = os.path.join(dirpath, f) total_size += os.path.getsize(fp) return total_size def get_or_none(key,d,none = None): if key in d: return d[key] else: return none