linuxBean14.04(87)ipynbファイルをnbconvertするシェルスクリプト

前の関連記事:linuxBean14.04(86)AnacondaのパッケージをLibreOfficeマクロで使う


linuxBean14.04(78)Jupyter Notebookの内容を直接Bloggerに貼り付ける方法で使ったjupyter nbconvert --template basic ipynbファイル をシェルスクリプトでipynbファイルをドロップするだけで変換できるようにシェルスクリプトを作ります。

ファイルをドロップするとipynbファイルを変換するシェルスクリプト


ドロップしたファイルのフルパスは$1で得ることができます。

あとはこれを加工してjupyter nbconvert --template basic ipynbファイル を実行するだけですが結構手こずりました。
#!/bin/bash
file_path=$1
cd ${file_path%/*}
export PATH=~/anaconda3/bin:$PATH
jupyter nbconvert --template basic $1
これで思ったように動きました。

これを実行権限をつけてipynb_basic_convert.shというファイル名で保存しました。

手こずったのは4行目の部分です。

Terminalからはjupyterコマンドから有効なのにシェルスクリプトにjupyterと書いてもコマンドが見つかりませんと言われてしまいます。

あれこれ検索してもわからなくてlinuxBean14.04(21)Bloggerで使うJavaScriptの開発環境で~/.bashrcファイルをみてnvmをシェルスクリプトで実行できたのを思い出したので~/.bashrcファイルをみたところ上記の記述をみつけて解決しました。

フルパスからフォルダ名を得る方法はファイルパスからファイル名や拡張子を自由に取り出す - ザリガニが見ていた...。が参考になりました。

パスの中に空白がある場合は動きません。

ファイルをドロップするとシェルスクリプトが実行されるようにする


LibreOffice(61)linuxBeanでJavaの例をmakeのときはわからなかったのですが、ショートカットを作ってそこにドロップすれば引数$1にファイルのフルパスを受けてシェルスクリプトが実行できることを発見しました。


コマンドにはipynb_basic_convert.shのフルパスを入力しました。

アイコンはPixelformerで文字だけのアイコン作成で作ったものです。


「ターミナルで実行する」にチェックはつけているとログウィンドウで変換中の状態が見えるのでつけておきましたが、アプリケーションランチャーに登録したアイコンにドロップした場合はログウィンドウはでてきませんでした。

あとはこのアイコンにipynbファイルをドロップすると元のipynbファイルと同じ場所にhtmlファイルが出力されます。

Jupyter Notebook(ipython4.0.0)のipynbファイいるだけでなく、IPython Notebook(ipython3.2.0)のipynbファイルも同様に変換できました。

参考にしたサイト


ファイルパスからファイル名や拡張子を自由に取り出す - ザリガニが見ていた...。
bashでフルパスからディレクトリ名などを取り出す例があります。

Man page of BASH
bashのマニュアル。

次の関連記事:linuxBean14.04(88)LibreOffice5をIPython Notebookから操作する

PR

0 件のコメント:

コメントを投稿