Когда вы выполняете тот же анализ в ноутбуке в разных файлах данных, может быть удобно графически выбирать файл данных.
В моих сценариях python я обычно реализую диалог QT, который возвращает имя файла для выбранного файла:
from PySide import QtCore, QtGui
def gui_fname(dir=None):
"""Select a file via a dialog and return the file name.
"""
if dir is None: dir ='./'
fname = QtGui.QFileDialog.getOpenFileName(None, "Select data file...",
dir, filter="All files (*);; SM Files (*.sm)")
return fname[0]
Однако запуск этой функции из ноутбука
full_fname = gui_fname()
заставляет ядро умирать (и перезапускать):
Интересно, что замазка этой 3 команды в 3 отдельные ячейки работает
%matplotlib qt
full_fname = gui_fname()
%matplotlib inline
но когда я помещаю эти команды в одну ячейку, ядро снова умирает.
Это предотвращает создание функции типа gui_fname_ipynb()
, которая прозрачно позволяет выбрать файл с графическим интерфейсом.
Для удобства я создал блокнот, иллюстрирующий проблему:
Любое предложение о том, как выполнить диалог выбора файлов из IPython Notebook?