目的
拡張子をipynbからpyに変えたかった。
が、、単純にはいかなかった。
開発環境:
windows Corei5-2520M CPU 2.50GHz RAM 8.0GB
Jupyterlab,JupyterNoteBook
ちなみにNotebook(のようなもの)をテキストエディタの一つであるAtomで実行する方法は以下の記事に書いた。
ではさっそく、
やったこと
拡張子をそのままリネーム
初めにJupyterlabにて以下のコード入力
gleeting_test.ipynb
このgleeting_test.ipynbを.pyにリネームして別のファイル(test_import.ipynb)からimportしようと思ったら、以下のエラーコードが発生。
test_import.py
gleeting_test.pyの中身を見てみると、以下のようにコードが変わってしまっていた。
gleeting_test.py
どうやらipynbファイルはjson形式で書かれているもので、json形式で書かれているものをpythonファイルに変更しろと言われても無理がありますよね。ですのでそのまま書き換えるのはよろしくない気がしてきますね。
解決法
labでは拡張子が変更できなそうだったためNotebookに移動
上のようなことをして拡張子を変更し.pyファイルとしてダウンロード。
その後ダウンロードした.pyファイルをカレントフォルダに移動
結果
test_import.ipynb
できた。
ちなみに他の方法としては、アナコンダプロンプト上でipynbがあるフォルダまで移動して以下のコマンドをたたく方法もあります。
jupyter nbconvert --to script *.ipynb
アナコンダプロンプトはanacondaをインストールした際に一緒にインストールされているコマンドプロンプトと似たものです。わからなければwindowsなら画面左下の検索画面から"anaconda"と入力すれば出てくると思います。
該当のフォルダまで移動し、上記コマンドをたたき以下の文字が出てくれば成功です。
[NbConvertApp] Converting notebook change.ipynb to script
[NbConvertApp] Writing 89 bytes to change.py
実際にフォルダを見てみるとipynbとpyのファイルがあると思います。
上記のコマンドは拡張子を変換するだけでなく、元のipynbも残しておいてくれるんですね。
結言
直接renameするのはコードを大きく変えてしまうからやらないほうが良いと思います。
また、個人的にはUNIXコマンドも使いたいので、アナコンダプロンプトよりもanaconda Navigatorのターミナルからいろいろ動かす方がやりやすいかも?
ターミナルに関してはまた別の記事に書こうと思います。