windows10でJupyter Notebookの初期ディレクトリを変更する方法のメモです。
1. jupyter notebookの設定ファイルを作る
Aanaconda Promptで以下を入力
jupyter notebook --generate-config
すると,default configがC:\Users\[ユーザー名]\.jupyter\jupyter_notebook_config.pyに生成されるので,それを開く
(Macの場合はおそらく~/.jupyter/jupyter_notebook_config.pyになる)
2. 設定ファイルを編集する
202行目にc.NotebookApp.notebook_dir = ”という行があるので,コメントアウトの#を消して,設定したいフォルダのパスを入れる
## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ''
Usersフォルダ等を指定するときの注意点
コンフィグファイルがPythonであるため,Windowsのパスの書き方をそのまま使うとエラーにハマることがある。
c.NotebookApp.notebook_dir = 'C:\Users'
のように,\Uあるいは\uから始まるようなパスを指定してしまうと,正しくパスが指定されないため,エラーが吐かれるし指定したディレクトリでjupyter notebookが起動しない。

この原因は,Pythonにおいて\Uxxxxxxxxや\uxxxxはエスケープシーケンス(特殊な意味を持つ文字列。改行を\nで表すアレの仲間)であるため。
(参考:2. 字句解析 — Python 3.6.5 ドキュメント)
Usersフォルダに限らず,Pythonのエスケープシーケンスに引っかかるフォルダ名は全部エラーになる。例えば’C:\abc’とかも\aというエスケープシーケンスがあるのでダメ。
対処法
1. \を表すエスケープシーケンスである\\を使う
c.NotebookApp.notebook_dir = 'C:\\Users'
あるいは,
2. \の代わりに/を使う
c.NotebookApp.notebook_dir = 'C:/Users'
参考:エスケープシーケンス一覧
エスケープシーケンス意味
\newlineバックスラッシュと改行文字が無視されます\\バックスラッシュ (\)\'一重引用符 (')\"二重引用符 (")\aASCII 端末ベル (BEL)\bASCII バックスペース (BS)\fASCII フォームフィード (FF)\nASCII 行送り (LF)\rASCII 復帰 (CR)\tASCII 水平タブ (TAB)\vASCII 垂直タブ (VT)\ooo8 進数値 ooo を持つ文字\xhh16 進数値 hh を持つ文字\N{name}Unicode データベース中で name という名前の文字\uxxxx16-bit の十六進値 xxxx を持つ文字\Uxxxxxxxx32-bit の十六進値 xxxxxxxx を持つ文字(出典:2. 字句解析 — Python 3.6.5 ドキュメント)
参考
-
- Jupyter Notebookのホームディレクトリを変更する方法 | あずみ.net
- unicodeのraw文字列は \ をエスケープしない場合がある – かせきのうさぎさん