首页 > 其他分享 >streamlit使用技巧

streamlit使用技巧

时间:2024-01-11 10:38:00浏览次数:20  
标签:dirs 文件 技巧 uploaded file 使用 path streamlit os

实现上传PDF并显示

## 上传并预览(1M以内才可预览)
def upload_Pre():
    file = st.file_uploader("选择待上传的PDF文件", type=['pdf'])
    if st.button("点击"):
        if file is not None:
            with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
                fp = Path(tmp_file.name)
                fp.write_bytes(file.getvalue())
                with open(tmp_file.name, "rb") as f:
                    base64_pdf = base64.b64encode(f.read()).decode('utf-8')
                pdf_display = f'<embed src="data:application/pdf;base64,{base64_pdf}" ' \
                              f'width="800" height="1000" type="application/pdf">'
                st.markdown(pdf_display, unsafe_allow_html=True)

实现上传(多个)不同类型文件并保存

# 上传文件
def upload_Save():
    # 创建一个文件夹用于保存上传的文件(若存在则清空,若不存在,则新建)
    dirs = 'uploads'
    if not os.path.exists(dirs):
        os.makedirs(dirs)
    else:
        shutil.rmtree(dirs)
        os.makedirs(dirs)
    # 选择文件
    uploaded_files = st.file_uploader("请选择情报文件:",accept_multiple_files =True, type=["pdf","txt","docx"])
    # 保存文件
    if uploaded_files:
        for uploaded_file in uploaded_files:
            file_contents = uploaded_file.getvalue()
            file_path = os.path.join(dirs, uploaded_file.name)
            # 将文件保存到本地文件系统
            with open(file_path, "wb") as f:
                f.write(file_contents)
            # 获取文件路径
            st.write(f"文件地址: {file_path}")
        return os.path.join(os.path.dirname(os.path.abspath(__file__)),dirs)

实现下载文件按钮

# 下载文件
def download_res(file_path):
    if file_path:
        # 下载
        with open(file_path, "rb") as file:
            btn = st.download_button(
                label="

标签:dirs,文件,技巧,uploaded,file,使用,path,streamlit,os
From: https://www.cnblogs.com/pam-sh/p/17957983

相关文章

  • 内存使用率多少算正常?
    参考链接:https://baijiahao.baidu.com/s?id=1777064449174417489&wfr=spider&for=pchttps://baijiahao.baidu.com/s?id=1782730192697326164&wfr=spider&for=pc今天远程遇到一个问题,用浏览器的时候,直接就卡死了。打开任务管理器,内存使用已经到了百分之90左右了。对于一般的办......
  • DM7_SQL语言使用手册_第 1 章 结构化查询语言 DM_SQL 简介
    第1章结构化查询语言DM_SQL简介结构化查询语言SQL(StructuredQueryLanguage)是在1974年提出的一种关系数据库语言。由于SQL语言接近英语的语句结构,方便简洁、使用灵活、功能强大,倍受用户及计算机工业界的欢迎,被众多计算机公司和数据库厂商所采用,经各公司的不断修改......
  • 如何在uniapp中使用路由进行页面跳转
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何使用Highcharts创建响应式数据可视化
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何在ECharts中使用矩形树图展示数据层级结构
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何使用Highcharts创建温度计图表
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何在Highcharts中使用堆叠图表来展示数据
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何使用Highcharts创建雷达图表
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何在网站中使用Highcharts插入漂亮的图表
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 如何在Highcharts中使用烛台图来展示数据
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......