Аргумент% run ноутбука Jupyter не оценен - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь запустить программу на Python из записной книжки Jupyter и передаю ей переменную, подобную этой:

docs = ['file1', 'file2']
for doc in docs:
    %run 'prog.py' doc

Проблема в том, что «doc» не оценивается и воспринимается буквально, что,в моем случае приводит к: [Errno 2] Нет такого файла или каталога: 'doc'

Добавление -i в% run не меняет результат.

Что я делаю не так?

1 Ответ

0 голосов
/ 16 октября 2018

Jupyter Notebook расширяет переменные с помощью $ name в стиле bash.

Помещение '$' перед именем переменной работает:

docs = ['file1', 'file2', 'file 3', 'file\ 3']
for doc in docs:
    %run 'prog.py' $doc    # <- $doc instead of doc

Обратите внимание, что вам придется заменитьпробелы в именах файлов через '\', чтобы prog.py мог открывать файлы.В приведенном выше примере вы должны получить сообщение об ошибке для «файла 3», но «файл \ 3» должен быть в порядке.

С документ ipython : все выражения с префиксом '$ 'расширяется.Подробнее о семантических правилах см. PEP-215: http://www.python.org/peps/pep-0215.html. Это библиотека, используемая IPython для расширения переменных.Если вы хотите получить доступ к истинной переменной оболочки, потребуется дополнительный $, чтобы предотвратить ее расширение с помощью IPython

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...