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

IPython笔记本:计算笔记本中的单元数,python,ipython,ipython-notebook,jupyter-notebook,Python,Ipython,Ipython Notebook,Jupyter Notebook,回答问题堆栈溢出,我使用相同的ipython笔记本,这使得搜索以前给出的答案更容易 笔记本开始慢下来了。我的问题是:如何计算笔记本中的单元格数 我建议你不要在所有事情上都使用相同的ipython笔记本。如果使用多个笔记本电脑会导致代码重复,那么您应该能够将常见功能分解到实际的python模块中,以便笔记本电脑可以导入这些模块 笔记本只是一个json文件,如果您将该文件作为json读取,那么您可以轻松地执行该操作 例如: import json document = json.load(o

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

笔记本开始慢下来了。我的问题是:如何计算笔记本中的单元格数

  • 我建议你不要在所有事情上都使用相同的ipython笔记本。如果使用多个笔记本电脑会导致代码重复,那么您应该能够将常见功能分解到实际的python模块中,以便笔记本电脑可以导入这些模块
  • 笔记本只是一个json文件,如果您将该文件作为json读取,那么您可以轻松地执行该操作
  • 例如:

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

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

    jupyter nbconvert --ExecutePreprocessor.allow_errors=True --to notebook --execute jupyter_notebook.ipynb
    
    其中:
    jupyter\u notebook.ipynb
    应替换为您的
    filename.ipynb


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

    实际上不需要解析json。只需将其作为文本阅读,并计算实例,例如,“单元格类型”:

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

    如果任何单元格有降价,并且您希望避免降价,您可以只搜索
    “cell\u type”:“code”,


    尽管正如其他人所说,最好不要以这种方式存储代码。或者至少,我认为如果您希望它作为参考,您可以将其存储为将来更容易访问的方式。

    您可以尝试内核>重新启动&全部运行。然后滚动到最后一个单元格,查看在[#]@Sam中的#是什么,如果所有单元格都有有效代码,则该操作将有效。如果在运行停止的任何位置出现错误。。。如果你是笔记本的用户,我发现拆分笔记本并不容易,笔记本格式是JSON文件。解析它,然后计算json结构的正确部分。您可能会发现,在一个目录中为每个问题创建一个笔记本对您很有用。因为这是在浏览器之外运行的,所以您可以找到输出内存使用情况—不是针对这个项目,而是另一个项目。在浏览器中,我可以获取objects的内存使用情况。顺便说一句,您也可以通过它的API界面在浏览器中运行它。。我建议您仔细查看传递给
    executeprocessor
    traitlets
    参数,它基本上有各种可配置选项,如超时、版本支持等。有趣的是,我在返回之前就这样做了。[794]这真的不是问题,只要我保存、关闭、退出并重新打开。。这将清除内存,同时保留代码和输出;目前的版本已经废除了“工作表”。如果您使用,它会在加载时自动将笔记本转换为指定格式的版本。谢谢,我不知道。
    with open(fname, 'r') as f:
        counter = 0
        for line in f:
            if '"cell_type":' in line:
                counter += 1