Используйте importlib.resources для файлов внутри родительского модуля верхнего уровняPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Используйте importlib.resources для файлов внутри родительского модуля верхнего уровня

Сообщение Anonymous »

Я хочу загрузить файл из моего модуля Python, используя importlib.resources (см. Также этот вопрос).
Если файл находится внутри подмодуля, это просто (запустите с помощью 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())
Как я могу получить импортную ссылку на местоположение модуля верхнего уровня, так что importlib.resources может понять это?


Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-module
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»