Если файл находится внутри подмодуля, это просто (запустите с помощью python -m , см. Здесь):
import importlib.resources
from . import submodule
print(importlib.resources.files(submodule).joinpath("file.txt").read_bytes())
Для файлов в том же модуле можно использовать __package __ :
Код: Выделить всё
import importlib.resources
print(importlib.resources.files(__package__).joinpath("file.txt").read_bytes())
< /code>
Однако я не могу получить этот подход для работы для файлов в модуле верхнего уровня, если я хочу получить к ним доступ от подмодуля: < /p>
module
├── file.txt
├── __init__.py
└── submodule
├── __init__.py
└── submodule_script.py
< /code>
import importlib.resources
from ... import module # ImportError: attempted relative import beyond top-level package
import .. as module # SyntaxError: invalid syntax
from .. import . as module # SyntaxError: invalid syntax
print(importlib.resources.files(module).joinpath("file.txt").read_bytes())
Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-module