Приложение
My Python 3.6 имеет следующую структуру:
app/
|__ utility.py
|__ resource.txt
|__ notebooks/
|__ sandbox.ipynb
В utility.py
у меня есть функция, которая читает файл ресурсов:
# utility.py
def do_something():
with open('resource.txt') as f:
content = f.read()
Все хорошо и хорошо.
Проблема в том, что когда я импортирую утилиту в sandbox.ipynb
, функция не работает, потому что не может найти файл resource.txt
в папке notebooks
:
# sandbox.ipynb
import sys
if '..' not in sys.path
sys.path.append('..')
from utility import do_something # ok
do_something() # resource.txt not found
Каким способом Pythoni c сделать так, чтобы do_something
всегда читался из файла resource.txt
, который находится в той же папке, что и utility.py
? Старший разработчик в моей компании не рекомендовал использовать __file__
, потому что он может указывать на неправильное расположение zip-пакета. Это правда?