Bokeh如何加载带有目录的文件



我正在尝试让文件在bokeh中工作。使用input小部件时,它只提供文件名。如何使文件名与目录,当打开文件时没有错误?

csvfile = FileInput() # csvfile = ('C:/matlab0012.csv')
csvopen = myfun(csvfile) # myfun-my function that creates graphs from data from a file

@bigreddot是对的。你不可能得到完整的路径。但您可以访问选定的文件。但是,您必须先对其进行解码。

最小示例:

from pybase64 import b64decode
def get_file(attr, old, new):
file = io.BytesIO(b64decode(new))
new_data = pd.read_csv(file)  # pandas or just use open.
file_input = FileInput(name="fileinput", accept="<.csv>")
file_input.on_change('value', get_file)

这是不可能的。出于安全原因,浏览器不会提供完整路径。他们将只提供文件名和请求文件的文件内容。

假设这些是Bokeh服务器应用程序,则只能通过添加到input小部件的value属性中的on_change回调来响应文件选择。

如果这是独立输出(而不是Bokeh服务器(,则您只能使用JavaScriptjs_on_change回调进行响应,因为浏览器中显示的Bokeh内容未连接到任何Python进程。

在任何一种情况下,浏览器将提供的都是文件内容(Bokeh将其存储为value属性中的base64编码字符串(。

最新更新