繁体   English   中英

如何在Jupyter笔记本中批量编辑文本?

[英]How to batch edit text in jupyter notebooks?

问题 :我有数十个Jupyter笔记本,所有笔记本都有一些我需要替换的文本。

每个笔记本都在目录foo包含对外部文件的引用。

 ./
  |- foo
  |   |- image.jpg
  |   |- ...
  |- notebooks
      |- file1.ipynb
      |- file2.ipynb
      |- file3.ipynb
      |- ...

但是, foo目录很快将重命名为bar ,从而孤立了笔记本中的关联链接。 因此,我需要将每个笔记本中的所有链接从旧的foo目录名重命名为新的bar名,例如foo/image.jpgbar/image.jpg

问题 :一个一个地打开将花费很多时间。 是否有一种有效且安全的解决方案,用于批量编辑多个Jupyter笔记本的文本?

途径

由于笔记本实际上是json文件,因此我考虑在VSCode中进行简单的搜索和替换。 我已经在测试笔记本上尝试过此方法,并且它似乎可以工作,但是我不确定此方法是否会以某种方式损坏文件。 我感谢任何安全的建议。

您在* nix上吗? 然后sed将起作用。

cd ./path/to/notebooks
sed -i 's/foo/bar/g' *.ipynb

或者您可以将vim argsaddargsdo结合使用

即,

vim
:cd path/to/notebooks
:arg *.ipynb
:argdo %s/foo/bar/ge | update

暂无
暂无

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

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