все Python 3inspectфункция
inspect.getmodulename()
члены и модули
По пути к файлу возвращает имя модуля без расширения или None, если расширение не модульное. Импорта не делает.
Синтаксис
inspect.getmodulename(path) -> str | None
Это чистая работа со строкой: файл может не существовать. Расширения сверяются с importlib.machinery.all_suffixes(), поэтому .py, .pyc и расширение модулей на C своей системы (.so или .pyd) дают имя, а .txt — None. Имя пакета функция не находит: путь к каталогу даёт None, а путь к pkg/__init__.py — буквально '__init__'. Имя внешних пакетов (pkg.mod) не добавляется.
Примеры
import inspect
print(inspect.getmodulename('app/utils.py')) # → utils
print(inspect.getmodulename('cache/utils.pyc')) # → utils
print(inspect.getmodulename('notes.txt')) # → None
print(inspect.getmodulename('app/__init__.py')) # → __init__
print(inspect.getmodulename('app')) # → None
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности