Python 3.x 如何搜索jupyter笔记本python文件?
我有很多jupyter python文件(ipnyb),如何在它们上面轻松搜索python源代码,例如从命令行或jupyter笔记本客户端本身?我正在寻找专门用于jupter笔记本电脑的产品,而不是普通的find/grep,因为嵌入式数据“data”:{Python 3.x 如何搜索jupyter笔记本python文件?,python-3.x,jupyter-notebook,Python 3.x,Jupyter Notebook,我有很多jupyter python文件(ipnyb),如何在它们上面轻松搜索python源代码,例如从命令行或jupyter笔记本客户端本身?我正在寻找专门用于jupter笔记本电脑的产品,而不是普通的find/grep,因为嵌入式数据“data”:{ “image/png”}要在笔记本中搜索,请在命令模式下使用“查找+替换”快捷方式F。例如,在Kaggle上,Esc为命令模式,然后F触发查找 或者在Mac上用Cmd+Shift+p打开命令面板,在Linux/Win上用Ctrl+Shift+p
“image/png”}要在笔记本中搜索,请在命令模式下使用“查找+替换”快捷方式
F
。例如,在Kaggle上,Esc
为命令模式,然后F
触发查找
或者在Mac上用Cmd+Shift+p
打开命令面板,在Linux/Win上用Ctrl+Shift+p
打开命令面板,然后在其中键入“查找”
至于在Jupyter中同时搜索多个笔记本,我没有经验。我建议研究JupyterLabs及其扩展,因为它似乎更适合多个笔记本
在CLI中,普通grep可以工作
grep wordtosearch *.ipynb
用于递归
grep -r --include \*.ipynb wordtosearch mytopdirectory
此命令允许您执行递归搜索(通过根目录中的所有文件夹) 有关此命令的说明,请查看此链接=>
find.-name'*ipynb'| xargs grep您的搜索
我也想这么做!我找到了一个非常好的解决方案,你可以在笔记本电脑中完成。但是,如果链接中断,这里提供了代码:
pattern = '../**/*.ipynb'
query = 'text you want to find'
for filepath in glob.iglob(pattern, recursive=True):
with open(filepath) as file:
s = file.read()
if (s.find(query) > -1):
print(filepath)
这将打印包含搜索字符串的所有文件。一个很好的增强功能是同时打印字符串出现的上下文。是,对,但笔记本文件通常包含嵌入的附加数据,如“数据”部分中的图像:{“image/png”}…是,对,但笔记本文件通常包含嵌入的附加数据,如“数据”部分中的图像:{“image/png”}。您需要什么?搜索这些附加数据?如果您需要查找特殊字符串,为什么不搜索“
”mystring“
而不是'mystring'
,我的意思是添加引号,这样你就不会在嵌入的数据中得到随机关键字。我认为有一个jupyert专用工具可以做到这一点。目前我正在使用jupyter nbconvert将ipynb转换为python文件,然后搜索它们。ipynb的元数据是个问题。您好,不久前我自己找到了一个解决方案。这就是我想要的:但主持人删除了我的答案。:-)