【发布时间】:2014-10-21 19:29:25
【问题描述】:
我有一个 ipython 笔记本,它在数据处理例程中运行多个步骤,并在此过程中将信息保存在文件中。这样,在开发我的代码时(主要在一个单独的 .py 模块中),我可以跳到并运行各个步骤。我想设置它以便我可以Cell->run all 但只让它执行某些很容易选择的选定步骤。例如,我想像这样定义我想在 dict 中运行的步骤:
process = {
'load files':False,
'generate interactions list':False,
'random walk':True,
'dereference walk':True,
'reduce walk':True,
'generate output':True
}
然后这些步骤将基于此 dict 运行。顺便说一句,每个步骤都包含多个单元格。
我认为%macro 不是我想要的,因为无论何时我更改任何内容或重新启动内核,我都必须重新定义宏,并更改单元格编号。
有没有类似%skip 或%skipto 的魔法或类似的东西?或者也许是一个干净的方式放在单元格的开头,if process[<current step>]: %dont_run_rest_of_cell?
【问题讨论】:
-
我也有同样的需求——我使用笔记本作为自动生成报告的模板。我希望能够根据某些条件定义我的笔记本的哪些部分被执行,例如是否存在某个输入文件(即,如果提供了这个文件,则运行接下来的 6 个单元格)。这个想法让我想起了 C 系列语言中的#define、#ifdef 编译器宏。