python-3.x - 2个选择框第一个带有字母,第二个带有以该字母开头的名称
问题描述
2个选择框第一个带有字母,第二个带有以该字母开头的名称
1-我使用以下代码创建 CSV 文件名列表
path = "/home/zhamane/streamlit/Streamlit_tutorials/data"
li = [os.path.splitext(filename)[0] for filename in os.listdir(path)]
例如,我在“数据”文件夹中有 3 个文件(all_stocks_5yr.csv、auto-mpg.csv、clean_auto_mpg.csv)它将返回一个列表
[all_stocks_5yr, auto-mpg, clean_auto_mpg]
2-我使用来自 stremlit 的选择框来选择那些文件
select_event = st.sidebar.selectbox('Choisir des indicateurs', li)
但我想创建 2 个选择框第一个,其中包含从每个文件名的初始字母创建的字母列表(在我们的示例中)
[a, c]
当我选择例如 a 时,第二个列表将显示所有以 a 开头的名称
3-之后我想读取用熊猫选择的文件
df = pd.read_csv("path/{select_event}.csv")
解决方案
我不确定你要的是什么。我假设您正在尝试过滤您的输入?我想出了以下解决方案。
import streamlit as st
list_of_files = ["all_stocks_5yr", "auto-mpg", "clean_auto_mpg"]
st.write(list_of_files)
def should_include(item, search_term, criteria):
if criteria == "starts with":
return item.startswith(search_term)
elif criteria == "contains":
return search_term in item
search_term = st.text_input("Filter")
option = st.radio("choose filter option", ("starts with", "contains"))
new_items = [item for item in list_of_files if should_include(item, search_term, criteria = option)]
st.multiselect("Select files", list_of_files, new_items)
推荐阅读
- python - 使用 Dask 和 Psycog2 连接到远程 PostGreSql 服务器
- file - 打开目录并在文件中搜索模式
- javascript - django javascript没有重新加载
- cookies - 有什么方法可以检查网站是否使用了 3rd 方 cookie?
- python - 如何在提高实时视频对比度的同时去除噪点?
- verilog - Verilog,无法生成比特流
- c# - 如何从 Xamarin.Forms(.Net Standard 2.0/2.1)中的图像字节 [] 序列创建视频(如文件 MP4、Avi 等)?
- php - 如何将旧 URL 重定向到 URL,但两个 URL 在具有漂亮 URL 时仍然有效
- ios - 如何在 IOS(React Native)中进行两个类似 android 的活动?
- machine-learning - 在不同机器上训练深度学习模型