代码之家  ›  专栏  ›  技术社区  ›  marnix

从命令行搜索Jupyter笔记本标记单元格

  •  5
  • marnix  · 技术社区  · 6 年前

    我使用 ag 搜索我的笔记。我的笔记写在Jupyter笔记本中的降价文件和降价单元格中。

    我可以使用 ag --markdown ... 。如果能用Jupyter笔记本文件做类似的事情,那将非常方便。但这需要 ag公司 了解这些笔记本的格式。

    我的问题是:有没有搜索的方法 只有 Jupyter笔记本文件中给定字符串的降价单元格?我可以接受解决方案中使用的任何模式匹配器( ag公司 ,则, grep ,则, ack ,…)。

    p、 s。 笔记本由JSON组成。以下是一个示例:

    $ head notebook.ipynb
    {
     "cells": [
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "THIS IS A MARKDOWN STRING"
       ]
      },
      {
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   gregory    6 年前

    我希望使用 jq 筛选python笔记本的所有降价单元格。例如,如果您只想说出所有降价来源,可以使用以下方法:

    $< notebook.ipynb | jq '.cells[]|select(.cell_type == "markdown")|.source[]'
    

    jq速度很快,在将ipython笔记本保存到git时,它可用于更精细的解决方案,例如: Using IPython notebooks under version control

        2
  •  2
  •   gboffi    6 年前

    我不知道 ag 可与过滤器连接,但 从笔记本文件中获得降价,下面的Python代码就足够了

    import nbformat
    from sys import argv
    nb = nbformat.read(argv[1], nbformat.NO_CONVERT)
    for cell in nb.cells:
        if cell.cell_type == 'markdown' : print(cell.source)