os.getcwd()
показывает не путь до .py файла, а место, откуда был вызван скрипт.
Допустим скрипт лежит в C:\Users\User\PycharmProjects\my
Если открыть консоль на диске Y:\, и выполнить
Y:\>python C:\Users\User\PycharmProjects\my\app.py
То получим вывод "Y:\", потому что код вызвали с диска Y:\, использовав полный путь до файла.
Если откроем консоль в папке "C:\Users\User\PycharmProjects\my" и выполним
python app.py
То получим путь до "C:\Users\User\PycharmProjects\my", т.к. скрипт мы вызвали из этой папки
Почему результат разный - PyCharm вызывает код внутри папки проекта, а VSCode из папки C:\Users\User
Если хотите путь до скрипта получить - os.path.realpath(__file__)