Что интересно, импорт os.path импортирует все файлы os. попробуйте следующее в интерактивной подсказке:
import os.path
dir(os)
Результат будет таким же, как если бы вы только что импортировали os. Это связано с тем, что os.path будет ссылаться на другой модуль в зависимости от того, какая у вас операционная система, поэтому python будет импортировать os, чтобы определить, какой модуль загружать для пути.
Справка
С некоторыми модулями высказывание import fooне раскрывается foo.bar, поэтому я предполагаю, что это действительно зависит от дизайна конкретного модуля.
В общем, простой импорт явных модулей, которые вам нужны, должен быть немного быстрее. На моей машине:
import os.path: 7.54285810068e-06 секунды
import os: 9.21904878972e-06 секунды
Эти времена достаточно близки, чтобы ими можно было пренебречь. Ваша программа может нуждаться в использовании других модулей osлибо сейчас, либо позже, поэтому обычно имеет смысл просто пожертвовать двумя микросекундами и использовать их, import osчтобы избежать этой ошибки в более позднее время. Я обычно поддерживаю простой импорт ОС в целом, но могу понять, почему некоторые предпочли import os.pathбы технически быть более эффективными и донести до читателей кода, что это единственная часть osмодуля, которую нужно будет использовать. По сути, в моем понимании это сводится к вопросу о стиле.