Jupyter Notebook でセルの実行をスキップする方法
コンテンツ
今回は、Jupyter Notebook で条件によってセルの実行をスキップする方法を紹介します。
これらの方法は Google Colaboratory や Kaggle Notebooks でも使用可能です。
指定したセルの実行をスキップする
まず初めに、指定したセルの実行をスキップする方法を紹介します。
以下のようにマジックコマンドを自作して使用します。
-
何もしない
skip
マジックコマンドを作成します。from IPython.core.magic import register_cell_magic @register_cell_magic def skip(line, cell): return
-
スキップしたいセルの先頭行に
%%skip
を追加します。%%skip <セル内のコード>
条件によって指定したセルの実行をスキップする
次に、条件によって実行をスキップするマジックコマンドを紹介します。
-
skip_if
マジックコマンドを作成します。from IPython.core.magic import register_cell_magic from IPython import get_ipython @register_cell_magic def skip_if(line, cell): if eval(line): return get_ipython().run_cell(cell)
-
セルの先頭行に
%%skip_if <条件式>
を追加します。%%skip_if <条件式> <セル内のコード>
条件によって以降の全てのセルの実行をスキップする
最後に、条件によって以降の全てのセルをスキップする方法を紹介します。
-
以下のように
run_cell
を書き換えます。from IPython import get_ipython SKIP_CONDITION = <条件式> # 元の run_cell を保存 run_cell_org = get_ipython().run_cell # 条件によって実行をスキップするrun_cellを作成 def custom_run_cell(*args, **kwargs): if SKIP_CONDITION: if 'raw_cell' in kwargs: kwargs['raw_cell'] = "" else: args = list(args) args[0] = "" args = tuple(args) return run_cell_org(*args, **kwargs) # run_cell を書き換える get_ipython().run_cell = custom_run_cell
-
以降のセルは、
<条件式>
が真の場合に全てスキップされます。