我正在尝试让文件在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编码字符串(。