繁体   English   中英

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

[英]IPython Notebook: Count number of cells in notebook

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

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

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

例如:

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

实际上没有必要解析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",

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

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

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

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

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

python -c "import sys, json; print(len(json.load(open(sys.argv[1],'r'))['cells']))" <notebook_filename.ipynb>

基于https://stackoverflow.com/a/38925464/588437 的单线

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM