因此,如果我在10个具有不同名称的单独.ipynb文件中使用相同的代码片段,那么请说明代码如下。
x = 1+1
这么简单的东西,但我想把变量x改为y。无论如何,他们使用python循环遍历每个.ipynb文件,并在它看到x的任何地方进行某种查找和替换以更改它或用y替换它?或者我是否必须在Jupiter笔记本中打开每个文件并手动进行更改?
答案 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")
进行保存。