10

ipython ノートブックで、コード セル自体からコード セルをプログラムで読み取って実行したいと考えています。

何かのようなもの

if condition:
  # run input cell no. 3

ここで解決策を見つけました。関数はセルごとにファイルをexecute_notebook読み取り、ipynbを使用してコードセルを実行しますget_ipython().run_cell()

ipynb外部ファイルから最初にセルを読み取らずに、同じことを行う方法はありますか? ipythonノートブック内からコードセルを参照してアクセスするために、マクロを書く方法はありますか?

4

3 に答える 3

3

あなたの質問を正しく理解しているかどうかわかりません。現在作業しているのとまったく同じノートブックを操作できるようになりたいですか? これは可能かもしれませんが、現在実行中のノートブックが未定義の状態のままになる可能性が高いため (または、少なくとも何が起こっているかを追跡するのが難しくなります)、災害のレシピのように正直に聞こえます.

よりクリーンなソリューションは、ユース ケースに必要なコード セルを正確に含む別のノートブックをプログラムで生成し、それを実行することです。(または、ダミーのコード セルを含む「テンプレート」.ipynbファイルを作成し、実行する実際のコードにプログラムで置き換えることもできます)。

私は最近同様のことをする必要があり、これを行う方法を示す詳細な例を書き上げました。プログラムで新しいノートブックを生成し、いくつかのマークダウンとコード セルを追加し (この場合、周波数がオンザフライで注入される正弦波プロットを生成します)、このノートブックを実行し、さらに後処理するために結果を保存します。

これが役立つことを願っています。あなたがやろうとしていることを完全に誤解している場合はお知らせください。

于 2015-05-04T18:57:32.070 に答える