【问题标题】:How do I save a Beaker notebook as straight python/r/...?如何将 Beaker 笔记本保存为直接 python/r/...?
【发布时间】:2016-04-04 20:47:39
【问题描述】:

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

问题

假设我在 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 - 没有 Beaker 笔记本标签!?不好的迹象...

【问题讨论】:

    标签: python r jupyter-notebook data-science beaker-notebook


    【解决方案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 对“魔法”的东西做了什么(天哪,笔记本的人怎么能认真地用“魔法”这样的名字来对待它)。

    这可以大大增强,但它可以让您了解您所询问的基本内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 2017-07-04
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多