28.12.2012

os.path.split

Хорошо, что никто никогда не спрашивал меня на собеседованиях, как работает os.path.split, потому что оно работает логично, но коварно. Если вы ожидаете, что получите из /foo/bar/__init__.py ['foo', 'bar', '__init__.py'], то вы неправы. Оно вернет ['/foo/bar', '__init__.py'].
Поэтому делить путь на директории или что у вас там вместо них можно:
  • небезопасно совсем (разбивая строку по слэшам),
  • слегка небезопасно (разбивая по os.path.sep) и
  • совсем безопасно (раз за разом разбивая голову результата os.path.split).

Комментариев нет: