Как импортировать все файлы в каталоге в Python3? - PullRequest
0 голосов
/ 10 февраля 2020

Я пишу небольшой пакет, в котором есть несколько файлов .py, и, возможно, в будущем в этот пакет будет добавлено больше файлов. Каждый файл содержит класс с тем же именем, что и файл. Вот пример:

pkg/
pkg/__init__.py
pkg/A.py # in which a class "A" exists
pkg/B.py # in which a class "B" exists
    ...

И я импортировал все файлы в __init__.py так:

from .A import A
from .B import B
...

Но, как я уже говорил, количество файлов растет, и я не не хочу редактировать __init__.py каждый раз, когда я добавляю новые файлы в пакет. Есть ли способ импортировать все файлы в __init__.py?

Примечание: в pkg не будет никаких подкаталогов.

Обновление: будет замечательно, если пользователь сможет используйте

import pkg.A
import pkg.B
...

для импорта моих классов.

1 Ответ

0 голосов
/ 10 февраля 2020

сначала создайте __init__.py в папке pkg и введите

import os, pkgutil
__all__ = list(module for _, module, _ in pkgutil.iter_modules([os.path.dirname(__file__)])

или

, просто введите

import A
import B

в __init__.py файле

, а затем используйте

from pkg import *

или

import pkg

pkg.A et c, тогда будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...