如何计算jupyter笔记本中的代码行数

Cyn*_*hia 6 python jupyter-notebook

我目前正在使用Jupyter ipython笔记本,我正在使用的文件有很多代码.我只是好奇我的文件中有多少行代码.由于我将代码分成许多不同的块,因此很难计算.

对于有jupyter笔记本经验的人来说,如何计算文件中有多少行代码?

谢谢!

编辑:我已经想出了如何做到这一点,虽然以一种非常模糊的方式.方法如下:将jupyter笔记本下载为.py文件,然后在Xcode等软件或您使用的任何IDE中打开.py文件,并计算代码行.

Jes*_*irk 12

这将为您提供通过命令行传递给脚本的一个或多个笔记本中的LOC总数:

#!/usr/bin/env python

from json import load
from sys import argv

def loc(nb):
    cells = load(open(nb))['cells']
    return sum(len(c['source']) for c in cells if c['cell_type'] == 'code')

def run(ipynb_files):
    return sum(loc(nb) for nb in ipynb_files)

if __name__ == '__main__':
    print(run(argv[1:]))
Run Code Online (Sandbox Code Playgroud)

所以你可以做点什么$ ./loc.py nb1.ipynb nb2.ipynb来获得结果.


Kir*_*nin 5

如果您有一个有用的jq实用程序,则可以从 shell 完成相同的操作:

jq '.cells[] | select(.cell_type == "code") .source[]' nb1.ipynb nb2.ipynb | wc -l

此外,您可以使用grep进一步过滤行,例如删除空白行: | grep -e ^\"\\\\n\"$ | wc -l