Боке как загрузить файл с его каталогом?

0

Вопрос

Я пытаюсь заставить файл работать в боке. При использовании input виджет, он дает мне только имя файла. Как сделать имя файла с каталогом, чтобы при открытии файла не было ошибок?

csvfile = FileInput() # csvfile = ('C:/matlab0012.csv')
csvopen = myfun(csvfile) # myfun-my function that creates graphs from data from a file
bokeh input python-3.x
2021-11-23 11:07:58
2
0

Это невозможно. По соображениям безопасности браузеры не будут предоставлять полный путь. Они предоставят только имя файла и содержимое файла из запрошенного файла.

Предполагая, что это серверное приложение Боке, вы можете ответить на выбор файла только on_change обратный вызов, который вы добавляете в value собственность компании input виджет.

Если это автономный вывод (не сервер Боке), то вы можете отвечать только с помощью JavaScript js_on_change обратный вызов, поскольку содержимое Боке, отображаемое в браузере, не связано с каким-либо процессом Python.

В любом случае все, что браузер предоставит, - это содержимое файла (которое Боке хранит в виде строк в кодировке base64 в value собственность).

2021-11-23 15:48:13
0

@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)
2021-11-23 15:37:20

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................