os.path.join()объединяет элементы пути, учитывая соображения кроссплатформенности. Т.е., например,
os.path.join('p1', 'p2', 'p3') под Linux выдаст p1/p2/p2, а под винду p1\p2\p3.
Последнее время приходится много этим пользоваться, так что эти постоянные вызовы утомляют пальцы и понижают читабельность. Делаем вот что:
class path_wrapper(str): def __div__(self, other): if other==E: return str(self) return path(os.path.join(self, other)) E=0 Q=path_wrapper()После чего пишем типа Q/var1/'var2'/var2/E, всё объединяется. Компромисс, но что поделаешь.
"E" нужно было, потому, что либа, которой я пользуюсь, требует только строки, нарушая конвенции duck typing.
Такая вот монада вышла.
Upd: Оказывается, такой вариант рассматривали, но потом отказались.