LoginSignup
18
6

More than 3 years have passed since last update.

[Jupyter] 実行中のipynbファイルが自分のパスを取得できるパッケージを作った

Last updated at Posted at 2020-06-26

TL;DR

pip install ipynb-path
import ipynb_path

# tokenでJupyterサーバーにログインできる場合:
print(ipynb_path.get())
# -> /path/to/this/notebook.ipynb

# もしくはパスワードが必要な場合:
print(ipynb_path.get(password='foo'))  

はじめに

Jupyter Notebookでipynbファイルを実行するとき、
自分自身のファイル名が知りたくなることがありませんか?
例えば、実行ログを別ファイルに出力するときにファイル名を書き出しておきたい、とか。

ググるといくつか方法が出てきますが、Jupyter Notebook / Jupyter Lab 兼用で短く書ける方法はなさそうです。
そこでページ下部の参考サイトの解決方法を参考に関数化・パッケージ化してPyPIに登録しました。

GitHub: https://github.com/kzm4269/ipynb-path

使い方

  • Jupyter Notebook / JupyterLab サーバーにtokenでアクセスできる場合
import ipynb_path
__file__ = ipynb_path.get()
print(__file__)
  • Jupyter Notebook / JupyterLab サーバーへのアクセスにパスワードが必要な場合
import ipynb_path
__file__ = ipynb_path.get(password='foo')
print(__file__)
  • 上記のコードを普通の .py ファイルにコピーすると __file__ が上書きされてしまいます。 この問題は、引数に __name__ を渡すことで防ぐことができます。
import ipynb_path
__file__ = ipynb_path.get(__name__)
print(__file__)

参考

18
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
6