Getting the .ipynb Notebook File Location From a Running Jupyter Lab Notebook

2025-06-29

If you need to get the path of the ipynb file in a running #Jupyter notebook, this one-liner will do the trick. It seems chatgpt is confused, and a bunch of other approaches on the web look fragile and/or unnecessarily complex to me.

import sys
Path(json.loads(Path(sys.argv[-1]).read_bytes())['jupyter_session'])

The way this works is that for each notebook, jupyter starts a python "kernel" process that actually runs the notebook's code. That kernel gets a json file with info on the notebook's location on the disk passed through its command line. Since we're running code in that exact python process, we can just grab that json file from sys.argv, and read it ourselves.