Python Glossary English

все 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Сообщить о неточности