python ui框架
目录
gradio python模块做交互界面很好用
ui拖拽
gradio python模块做交互界面很好用
ui拖拽
import gradio as gr
import os
from datetime import datetimedef process_uploaded_file(files):"""处理上传的文件并返回文件信息"""file_info = []for file in files:if file is None:continue# 获取文件信息file_name = os.path.bas(file.name)file_size = os.path.getsize(file.name)file_extension = os.path.splitext(file.name)[1].lower()upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")# 转换为更友好的文件大小格式size_units = ['B', 'KB', 'MB', 'GB']size_index = 0while file_size >= 1024 and size_index < len(size_units) - 1:file_size /= 1024.0size_index += 1file_info.append({"文件名": file_name, "大小": f"{file_size:.2f} {size_units[size_index]}", "类型": file_extension,"上传时间": upload_time})# 创建信息表格if not file_info:return "没有文件上传"info_html = "<table><tr><th>文件名</th><th>大小</th><th>类型</th><th>上传时间</th></tr>"for info in file_info:info_html += f"<tr><td>{info['文件名']}</td><td>{info['大小']}</td><td>{info['类型']}</td><td>{info['上传时间']}</td></tr>"info_html += "</table>"return info_html# 创建 Gradio 界面
with gr.Blocks(title="文件上传示例") as demo:gr.Markdown("# 🗂️ 文件上传示例")gr.Markdown("拖拽文件到下方区域或点击选择文件进行上传")with gr.Row():file_input = gr.File(label="上传文件", file_count="multiple", # 允许多个文件file_types=[ # 允许的文件类型".txt", ".pdf", ".png", ".jpg", ".jpeg", ".gif", ".mp3", ".mp4", ".doc", ".docx", ".xls", ".xlsx"])with gr.Row():output = gr.HTML(label="文件信息")# 设置文件上传时的处理函数file_input.upload(fn=process_uploaded_file, inputs=file_input, outputs=output)# 启动应用
if __name__ == "__main__":demo.launch()