CloudVault / utils.py
lexlepty's picture
Upload 4 files
0828366 verified
raw
history blame contribute delete
972 Bytes
import os
def get_file_type(filename):
"""根据文件扩展名判断文件类型"""
ext = os.path.splitext(filename)[1].lower()
# 文件类型映射
type_map = {
'image': ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'],
'video': ['.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv'],
'document': ['.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.txt'],
'audio': ['.mp3', '.wav', '.ogg', '.m4a'],
'archive': ['.zip', '.rar', '.7z', '.tar', '.gz'],
'code': ['.py', '.js', '.html', '.css', '.json', '.xml']
}
for file_type, extensions in type_map.items():
if ext in extensions:
return file_type
return 'other'
def format_file_size(size):
"""格式化文件大小"""
for unit in ['B', 'KB', 'MB', 'GB', 'TB']:
if size < 1024:
return f"{size:.2f} {unit}"
size /= 1024
return f"{size:.2f} PB"