Допустим, у вас есть модуль, который содержитсделать путь «всегда относительно текущего модуля»?
myfile = open('test.txt', 'r')
И файл «test.txt» находится в той же папке. Если вы запустите модуль, файл будет успешно открыт. Теперь можно сказать, что вы импортируете этот модуль из другого, находящегося в другой папке. Файл не будет искать в той же папке, что и модуль, в котором находится этот код. Итак, как сделать сначала поиск файлов с относительными путями в одной папке? Существуют различные решения с использованием «__file__
» или «os.getcwd()
», но я надеюсь, что есть более чистый способ, такой же специальный символ в строке, которую вы передаете open() или file().
В чем проблема с 'os.getcwd()'? – cfedermann
'os.getcwd()' возвращает путь первого модуля, который импортировал этот модуль, или импортировал другой, который импортировал его. Первый модуль может находиться во многих каталогах вверх или вниз. Так что не очень элегантно набирать 'os.getcwd() + 'something/somethingelse/yetanother/finallyhere'' –
Ну, тогда попробуйте предложенный ответ' sys.modules' ниже :) – cfedermann