IPython Notebook:计算笔记本中的单元格数

时间:2016-08-12 19:21:49

标签: python ipython ipython-notebook jupyter-notebook

回答问题Stack Overflow,我使用相同的ipython笔记本,这使得以前给出的答案更容易搜索。

笔记本开始变慢。我的问题是:我如何计算笔记本中的单元格数量?

3 个答案:

答案 0 :(得分:6)

  1. 我建议你不要使用相同的ipython笔记本。如果使用多个笔记本会导致重复代码,您应该能够将常用功能分解为笔记本可以导入的实际python模块。
  2. 笔记本只是一个json文件,如果您将文件作为json读取,则可以轻松完成。
  3. 例如:

    import json    
    document = json.load(open(filepath,'r'))
    for worksheet in document['worksheets']:
        print len(worksheet['cells'])    
    

答案 1 :(得分:4)

实际上没有必要解析json。只需将其作为文本读取并计算例如“单元格类型”的实例:

with open(fname, 'r') as f:
    counter = 0
    for line in f:
        if '"cell_type":' in line:
            counter += 1

或者,更简单,只需在文本编辑器中打开你的.ipynb笔记本,然后突出显示相同的文本并通过点击ctrl + F(或任何用于搜索的绑定)来查看计数。

如果任何单元格有降价并且您想要避开这些标记,您也可以只搜索"cell_type": "code",

虽然正如其他人所说,但最好不要以这种方式存储代码。或者至少,我想你可以将它存储起来,以便将来更容易访问,如果你想要它作为参考。

答案 2 :(得分:1)

您可以通过以下命令从命令行执行笔记本:

jupyter nbconvert --ExecutePreprocessor.allow_errors=True --to notebook --execute jupyter_notebook.ipynb

其中:jupyter_notebook.ipynb应替换为您的filename.ipynb

使用allow_errors=True,无论执行过程中遇到任何错误,笔记本都会执行到最后。输出笔记本将包含所有引发异常的单元格的堆栈跟踪和错误消息。