1

我刚刚发现了烧杯笔记本。我喜欢这个概念,并且非常渴望将它用于工作。为此,我需要确保我可以以其他格式共享我的代码。

问题

假设我在 Beaker 笔记本中编写纯 Python:

  1. 我可以像在 iPython Notebook/Jupyter 中一样将其保存为 .py 文件吗?
  2. 如果我写一个纯 R Beaker 笔记本,我可以这样做吗?
  3. 如果我用 Python 和 R 编写了一个混合(多语言)笔记本,我可以将它保存到例如 Python,R 代码存在但被注释掉吗?
  4. 可以说以上都不可能。将 Beaker Notebook 文件作为文本文件查看,它似乎以 JSON 格式保存。我什至可以找到对应于例如 Python、R 的单元格。编写一个执行上述 1-3 的 python 脚本看起来并不太具有挑战性。我错过了什么吗?

谢谢!

PS - 没有烧杯笔记本标签!?坏兆头...

4

1 回答 1

1

复制导出的基础知识并不难:

#' Save a beaker notebook cell type to a file
#' 
#' @param notebook path to the notebook file
#' @param output path to the output file (NOTE: this file will be overwritten)
#' @param cell_type which cells to export
save_bkr <- function(notebook="notebook.bkr", 
                     output="saved.py", 
                     cell_type="IPython") {

  nb <- jsonlite::fromJSON(notebook)

  tmp <- subset(nb$cells, evaluator == cell_type)$input

  if (length(tmp) != 0) {
    unlink(output)
    purrr::walk(tidyr::unnest(tmp, body), cat, file=output, append=TRUE, sep="\n")
  } else {
    message("No cells found matching cell type")
  }

}

我不知道 Jupyter 对“魔法”的东西做了什么(天哪,笔记本的人怎么能认真地用“魔法”这样的名字来对待它)。

这可以大大增强,但它可以让您了解您所要求的基础知识。

于 2016-04-04T21:29:54.997 回答