50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
import os
|
|
import hashlib
|
|
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
|