将文件信息从 html 文件选择器输入传递给 python 和 bokeh

2024-01-31

我正在尝试创建一个简单的散景服务器应用程序,允许用户从<input type="file">文件选择按钮。然后,应用程序将绘制用户选择的文件中的数据。下面的代码非常简单,我根本不知道如何将文件信息从文件选择器传递到python。我需要使用 python 来处理文件 I/O,而不是 html 或 javascript。

当我跑步时我可以让它正常工作bokeh serve --show example.py path/to/input_file在命令行,但我不希望用户每次都指定它。我需要他们能够单击按钮来“上传”文件。该应用程序在本地运行,因此无需上传到服务器或类似的东西。

有没有更好的方法<input type="file"> ?

from bokeh.plotting import figure
from bokeh.layouts import layout
from bokeh.models import ColumnDataSource, Div
from bokeh.io import curdoc

desc = Div(text="""
<h1>A simple example</h1>
<input type="file">
<br />""", width=800)

# Create Column Data Source that will be used by the plot
source = ColumnDataSource(data=dict(x=[], y=[]))

p = figure(plot_height=550, plot_width=800, title="", toolbar_location='above')
p.line(x="x", y="y", source=source)

def update():
    x_data,y_data = read_file_data(input_file_name) # function to read specific file type
    source.data = dict(
        x=x_data,
        y=y_data,
    )

sizing_mode = 'fixed'  # 'scale_width' also looks nice with this example
l = layout([
    [desc],
    [p],
], sizing_mode=sizing_mode)

update()
curdoc().add_root(l)
curdoc().title = "Sample"

维护者说明:Bokeh 中不推荐使用 CoffeeScript 支持,并将在 Bokeh 2.0 中完全删除。这个例子需要用 JavaScript 或 TypeScript 重写

散景效果0.12.4,没有内置的文件选择器输入小部件。但有可能创建 Bokeh 的新扩展 http://bokeh.pydata.org/en/dev/docs/user_guide/extensions.html与内置小部件一样无缝地工作,将 JS 事件连接到 Python。

下面的代码是一个模型的超级粗略实现,该模型包装了<input type="file">将其连接到 Python 代码。此代码应该适用于 Bokeh0.12.4和更新的。

from bokeh.core.properties import String
from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.models import Button, LayoutDOM

IMPL = """
import * as p from "core/properties"
import {LayoutDOM, LayoutDOMView} from "models/layouts/layout_dom"

export class FileInputView extends LayoutDOMView
  initialize: (options) ->
    super(options)
    input = document.createElement("input")
    input.type = "file"
    input.onchange = () =>
      @model.value = input.value
    @el.appendChild(input)

export class FileInput extends LayoutDOM
  default_view: FileInputView
  type: "FileInput"
  @define {
    value: [ p.String ]
  }
"""

class FileInput(LayoutDOM):
    __implementation__ = IMPL
    value = String()

input = FileInput()

def upload():
    print(input.value)
button = Button(label="Upload")
button.on_click(upload)

curdoc().add_root(column(input, button))

这会产生以下输出:

几乎肯定可以对此进行改进。 SO 并不是一个进行迭代和协作讨论的好地方,所以如果您对改进这一点有疑问,我建议项目 话语列表 https://discourse.bokeh.org/作为继续的最佳地点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件信息从 html 文件选择器输入传递给 python 和 bokeh 的相关文章

  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • CSS 显示无不工作

    media screen and min width 900px and max width 1215px menu display none 这不起作用 div 仍然可见 但是 如果我将 div 更改为 div class menu 代替
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • Service Worker 与 Shared Worker

    Service Worker 和 Shared Worker 有什么区别 我什么时候应该使用 Service Worker 而不是 Shared Worker 反之亦然 Service Worker 具有共享 Worker 之外的附加功能
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Facebook 点赞按钮消失

    我的网站中的 Facebook Like 按钮出现问题 添加此代码 由 facebook 提供 按钮在创建时正确显示在任何页面中
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk

随机推荐

  • 为什么我的 Heroku 应用程序无法在生产环境中使用 Sendgrid 发送电子邮件?

    我的设计电子邮件在开发中运行良好 但现在我已经推送到 Heroku 并正在使用 sendgrid 插件 它们没有被发送 我没有收到错误 看起来它发送得很好 只是它从未真正到达我的收件箱 这是我的config environment prod
  • 按最大日期分组

    我在执行这段代码时遇到问题 SELECT FROM tblpm n WHERE date updated SELECT MAX date updated FROM tblpm GROUP BY control number HAVING c
  • SQL Server 对 OrmLite 的特定类型支持

    我刚刚了解了一种天才类型 它可以简化我的很多工作 但看起来我喜欢的 ORM 无法识别它 有没有办法让 ServiceStack OrmLite 识别HierarchyId在 SQL Server 中 关于要修改哪些文件的任何建议以及如何继续
  • 停止 Xcode 自动为 Objective-C 标头生成 Swift 接口

    是否可以在显示 Objective C 标头时阻止 Xcode 8 自动生成 Swift 界面 例如通过设置用户默认值 从理论上讲 这是 Xcode 的一个非常好的功能 不幸的是它不能可靠地工作 对我来说 大多数时候它甚至似乎都失败了 由于
  • 在 Python 中重新启动线程

    我正在尝试为 Python 3 4 中的一个项目制作线程飞行软件 其中我需要线程自行重新启动 以防在传感器读取期间发生 I O 错误或类似的意外崩溃 因此 我正在努力制作一个看门狗来检查线程是否已死亡并重新启动它们 起初 我尝试检查线程是否
  • CSS最后一行没有结束标记“;”的原因是什么? [复制]

    这个问题在这里已经有答案了 我使用 CSS 一段时间了 我发现在很多教程和练习中 CSS 标记的最后一行没有 添加到其中 例如 ul li hover ul display block ul li ul list style none po
  • 尝试在 Heroku 上部署 Node.js/Express/Socket.io 应用程序时出现应用程序错误

    我对所有这些技术 包括一些 JavaScript 都相当陌生 所以你可能需要耐心听我说 我相当仔细地遵循了 Socket IO 文档中的 ChatApp 教程 并根据我的喜好对应用程序进行了一些修改 然而 我认为我在服务器交互和其他方面没有
  • 如何使用 JavaScript 创建 zip 文件?

    我发现了一个可以生成zip文件的javascript插件 它的名字叫jszip https stuk github io jszip 我尝试过 但我认为它只能生成将在 zip 文件中编译的文件 我想要的是能够将现有文件添加到它将生成的 zi
  • SQLite 的 DLL 地狱

    我们的一些用户遇到了运行时加载的 sqlite interop dll 版本的问题 这确实令人头疼 背景 为 AnyCPU 构建的 WPF 应用程序 使用 SQlite NET 和 sqlite interop dll 版本 1 0 89
  • 如何叠加两个geom_bar?

    我正在尝试覆盖 2 个条形图geom bar源自 2 个独立的 data frames dEQ lab perc 1 lmP 55 9 2 lmN 21 8 3 Nt 0 6 4 expG 5 6 5 expD 0 0 6 prbN 11
  • 如何使用 java.util.logging 对齐日志消息

    有人可以发布如何实现日志消息对齐 10 14 31 main package1 Class1
  • 在linux上,如何检查端口是否处于监听状态而不尝试连接

    如何使用 C 检查本地计算机上的端口 如果也需要传递 IP 或接口 是否处于侦听状态 我不想连接到这个端口进行检查 因为我不想激怒这个端口后面的服务 我想用它来将缺少的 net tcp listen 项目添加到 Zabbix 编辑 这是真正
  • 如何在多列上创建全文索引?

    我正在运行以下查询tbl query select from tbl query q where match q query desc q query desc details against test1 WITH QUERY EXPANS
  • 分配对象的严格别名规则

    C99 6 5 6 访问其存储的对象的有效类型 value 是对象的声明类型 如果有 75 如果通过类型将值存储到没有声明类型的对象中 左值的类型不是字符类型 则类型为 左值成为该访问的对象的有效类型 以及不修改存储值的后续访问 如果使用将
  • Scala、Java 和平等

    val filesHere new java io File listFiles val filesHere2 new java io File listFiles scala gt filesHere filesHere2res0 布尔值
  • Angular2组件:测试表单输入值变化

    我有一个文本输入 我正在监听更改 mycomponent ts ngOnInit this searchInput new Control this searchInput valueChanges distinctUntilChanged
  • 在印度使用 Spotify iOS SDK

    我正在创建一个流媒体应用程序 并希望使用 Spotify iOS SDK 来实现流媒体目的 但是 Spotify 的服务在印度不可用 我有 Spotify 高级帐户 位于美国 开发工作将在印度举行 我的问题是 我可以使用美国的高级帐户在印度
  • ES6 `从导入导出*`?

    是否有使用 ES6 或 ES7 或 babel 的语法可以让我轻松地将多组子文件捆绑在一起 例如 给定 action creators index js action creators foo actions js action creat
  • Haskell Cabal 为所有已安装的软件包重新生成文档

    如何为所有本地安装的 cabal 软件包生成并安装文档 我在 cabal config 中打开了文档标志 这意味着所有新安装的软件包也将生成文档 但是如何为所有已安装的软件包生成文档呢 有没有办法自动cabal install reinst
  • 将文件信息从 html 文件选择器输入传递给 python 和 bokeh

    我正在尝试创建一个简单的散景服务器应用程序 允许用户从