Как правильно определить текущий каталог скриптов?

Я хотел бы посмотреть, как лучше определить текущий каталог скриптов в Python?

Я обнаружил, что из-за множества способов вызова кода на Python трудно найти хорошее решение.

Вот некоторые проблемы:

__file__ не определено, если скрипт выполняется сexec, execfile__module__ определяется только в модулях

Случаи применения:

./myfile.pypython myfile.py./somedir/myfile.pypython somedir/myfile.pyexecfile('myfile.py') (из другого скрипта, который может находиться в другом каталоге и может иметь другой текущий каталог.

Я знаю, что не существует идеального решения, но я ищу лучший подход, который решает большинство случаев.

Наиболее используемый подходos.path.dirname(os.path.abspath(__file__)) но это действительно не работает, если вы выполняете скрипт из другого сexec().

Предупреждение

Любое решение, использующее текущий каталог, не будет выполнено, это может отличаться в зависимости от того, как вызывается скрипт, или его можно изменить внутри запущенного скрипта.

Ответы на вопрос(13)

Ваш ответ на вопрос