循环遍历python

时间:2018-01-24 19:15:41

标签: python jupyter-notebook

因此,如果我在10个具有不同名称的单独.ipynb文件中使用相同的代码片段,那么请说明代码如下。

x = 1+1

这么简单的东西,但我想把变量x改为y。无论如何,他们使用python循环遍历每个.ipynb文件,并在它看到x的任何地方进行某种查找和替换以更改它或用y替换它?或者我是否必须在Jupiter笔记本中打开每个文件并手动进行更改?

1 个答案:

答案 0 :(得分:2)

我之前从未尝试过这个,但.ipynb文件只是JSON。这些功能就像嵌套字典一样。每个单元格都包含在键“单元格”中,然后“cell_type”会告诉您单元格是否为代码。然后,使用“source”键访问代码单元(代码部分)的内容。

在我写的笔记本中,我可以找到这样的特定代码:

__import__('serializers', globals(), locals(), [], 1).Serializer

您可以迭代ipynb文件,使用上述内容识别要更改的代码,更改它并以正常方式使用import json with open('UW_Demographics.ipynb') as f: ff = json.load(f) for cell in ff['cells']: if cell['cell_type'] == 'code': for elem in cell['source']: if "pd.read_csv('UWdemographics.csv')" in elem: print("OK") 进行保存。