一日一技:如何从多个Jupyter Notebook中找到需要代码段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一日一技:如何从多个Jupyter Notebook中找到需要代码段相关的知识,希望对你有一定的参考价值。

一日一技:如何从多个Jupyter Notebook中找到需要代码段

技术图片

我喜欢使用Jupyter来写一些代码片段,如下图所示:
技术图片

但时间长了以后,可能积累了非常多的Notebook,如下图所示:

技术图片

某一天,我突然想找很久之前写的一段代码片段,但是我不记得是写在哪个Notebook里面了。应该怎么办呢?

如果我们使用vscode或者vim打开Notebook对应的 .ipynb,我们就会发现实际上Notebook也是文本文件,如下图所示:
技术图片

那么,在Linux和macOS下面,我们就可以使用Shell命令查询里面的内容。

假设我只记得要找的代码片段里面有一个关键字 event。

那么首先我们使用 ls命令列出所有的Notebook如下图所示:
技术图片

接着,通过管道传递给 grep:

技术图片

代码运行完成,立刻就可以看到,只有 公众号演示.ipynb这个Notebook里面有包含 event的代码片段。于是我们在Jupyter里面打开这个Notebook就可以找到代码了。

你以为这样完成了吗?我们测试一下,如果Notebook的名字包含空格会怎么样?包含引号又会怎么样?

先看包含空格的时候:

技术图片

包含引号的时候:

技术图片

这种情况怎么办呢?这个时候就需要换一种输出方式:


find *.ipynb -print0 | xargs -0 grep ‘未闻Code‘

运行效果如下图所示:

技术图片

以上是关于一日一技:如何从多个Jupyter Notebook中找到需要代码段的主要内容,如果未能解决你的问题,请参考以下文章

一日一技:在 Python 里面如何合并多个有序列表并使得结果依然有序?

一日一技:如何从 Redis 的列表中一次性 pop 多条数据?

一日一技:如何正确使用mac的搜索功能

一日一技:一次性把字符串用多个分隔符分割

一日一技:如何判断某个汉字是不是在字体库中

一日一技:从 Scrapy 学习模块导入技巧