.pyファイルと.ipynbファイルでカレントディレクトリがずれるのはなぜ？


ディレクトリを移動してcsvデータを保存するという作業を行うために、ipynbファイルでいろいろ試行錯誤しておりました。  
ipynbで問題なく動くことが確認できたため、pyファイルにコードをフルコピーして実行したところディレクトリが見つからないというエラーがでました。  
そこで、ipynbとpyのカレントディレクトリを確認（sample.ipynb, sample.py）すると1階層ずれていることがわかりました。

ディレクトリ確認のために実行したコードは以下のコードです。

[code]

    import os
    print(os.getcwd())
    os.chdir('../')
    print(os.getcwd())
    
[/code]

実行結果は、このようになりました。

### sample.ipynb

[code]

    d:\Data\XXX\Python
    d:\Data\XXX
    
[/code]

### sample.py

[code]

    D:\Data\XXX
    D:\Data
    
[/code]

たしかにずれているのですが、両ファイルのディレクトリは同じ階層に存在します（以下参考）。

[code]

    D:
    └─Data
       └─XXX
          └─Python
             ├─sample.ipynb
             └─sample.py
    
[/code]

実行に関しては、移動の際、".."を"."に変えるだけで動くので問題ないのですが、同じ階層にあるにもかかわらずディレクトリがずれることが気になって仕方ありません。  
なぜ、このようなことになるのでしょうか。

追記  
どちらもVSCodeでおこないました。  
.pyファイルは、VSCodeでデバッグ開始をクリックしました。

settings.jsonは以下となっております。

### settings.json

[code]

    {
        "workbench.colorTheme": "Default Dark+",
        "python.linting.flake8Enabled": true,
        "editor.formatOnSave": true,
        "workbench.iconTheme": "material-icon-theme",
        "launch": {
        
            "configurations": [],
            "compounds": []
        }
    }
    
[/code]




`.ipynb` (Jupyter Notebook, JupyterLab) の場合  
Notebookの位置するディレクトリではなく  
Jupyterを起動したディレクトリ (Jupyter Kernelのディレクトリ)がカレントディレクトリです  
(以下の場合, jupyter labを起動した位置になる)

[code]

    $ cd /home/USER/lang/Python
    $ jupyter lab
    
[/code]

`.py`の場合もそれは同様  
(以下の場合 `Python/sample.py`を実行してても, `getcwd()`は Python実行した位置)

[code]

    ─home
       └─USER
          └─lang
             └─Python
                └─sample.py
    
    $ cd /home/USER/lang/
    
    $ python Python/sample.py
    /home/USER/lang
    /home/USER
    
[/code]

* * *

#### 追記

VS Codeでの `.ipynb` は, (そのプロジェクト) ワークスペース の位置のはず




`.ipynb` (Jupyter Notebook, JupyterLab) の場合  
Notebookの位置するディレクトリではなく  
Jupyterを起動したディレクトリ (Jupyter Kernelのディレクトリ)がカレントディレクトリです  
(以下の場合, jupyter labを起動した位置になる)

[code]

    $ cd /home/USER/lang/Python
    $ jupyter lab
    
[/code]

`.py`の場合もそれは同様  
(以下の場合 `Python/sample.py`を実行してても, `getcwd()`は Python実行した位置)

[code]

    ─home
       └─USER
          └─lang
             └─Python
                └─sample.py
    
    $ cd /home/USER/lang/
    
    $ python Python/sample.py
    /home/USER/lang
    /home/USER
    
[/code]

* * *

#### 追記

VS Codeでの `.ipynb` は, (そのプロジェクト) ワークスペース の位置のはず

