Как использовать переменные из исходного блока org-mode во встроенном исходном коде? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть исходный блок Python, который получает количество переменных (столбцов) и падежей в кадре данных панд.

Минимальный пример:

#+begin_src python :exports none :session :results output
  df = pd.DataFrame({'a': [1, 2, 3],
                     'b': [4, 5, 6]})
  df_len_columns = len(df.columns)
  df_len_cases = len(df.index)
#+end_src

Что я хотел бы сделатьТеперь используйте значение этих переменных во встроенном исходном коде следующим образом:

Число переменных src_python{df_len_columns}, а число падежей src_python{df_len_cases}.

Но это приводит к следующемуошибка:

NameError: name 'df_len_columns' is not defined

Обратите внимание, что я использую аргумент сеанса :session, думая, что он будет частью того же сеанса и что он будет работать.Я также интенсивно выполняю поиск в Интернете, но не смог найти решение этого конкретного вопроса (большинство вопросов касаются встроенного кода для таблиц и форматирования встроенного кода).

Есть ли способ использовать эти переменные встроенным образом?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Похоже, вам нужно указать встроенный исходный код для ссылки на ваш сеанс, используя аргумент заголовка:

src_python[:session]{df_len_columns}

Общая форма src_<language>[<header arguments>]{<body>}.Возможные аргументы заголовка перечислены в руководстве org: Определенные аргументы заголовка .

Примечание. Значение подставляется при экспорте файла org через org-export-dispatch.

0 голосов
/ 20 сентября 2018

Если я правильно понял, вы хотите связать несколько исходных блоков с одним и тем же процессом.

Это так просто, как:

#+BEGIN_SRC ipython :results output :session testing
a = 5
#+END_SRC

#+RESULTS:

#+BEGIN_SRC ipython :results value  :session testing
a
#+END_SRC

#+RESULTS:
: # Out[6]:
: : 5

В этом примередва исходных блока связаны между собой.

Вы также можете объединить все исходные блоки в один .py файл.используя M-x org-babel-tangle-file, каждый раз, когда вы запускаете эту команду, файл обновляется новым путаницей.

...