Как узнать относительный путь от одной директории до другой?
Столкнулся с такой задачей, когда написал
и понял, что мне нужен путь от my_dir до os.path.join(path, f).
Можно конечно чисто по длине строки отрезать, что-то вроде этого (неэффективно, для иллюстрации) -
или заранее отрезать слеши на конце my_dir, но всё это раздражает, вот такое ручное вырезание уже склееного внутри os.walk, когда уже привык что "батарейки включены".
Как простым образом решить проблему?
upd: простой хакерский способ:
my_dir += '/'
дальше благодаря особенностям работы path[len(my_dir):] можно использовать без всяких if. Но это неочевидно для читающего код, поэтому не pythonish :) И использует недокуметированые фичи os.walk.
for path, dirs, files in os.walk(my_dir):
for f in files:
....
и понял, что мне нужен путь от my_dir до os.path.join(path, f).
Можно конечно чисто по длине строки отрезать, что-то вроде этого (неэффективно, для иллюстрации) -
rel_path = path[len(my_dir):]
while rel_path and rel_path[0] in ['/', '\\']:
rel_path = rel_path[1:]
или заранее отрезать слеши на конце my_dir, но всё это раздражает, вот такое ручное вырезание уже склееного внутри os.walk, когда уже привык что "батарейки включены".
Как простым образом решить проблему?
upd: простой хакерский способ:
my_dir += '/'
дальше благодаря особенностям работы path[len(my_dir):] можно использовать без всяких if. Но это неочевидно для читающего код, поэтому не pythonish :) И использует недокуметированые фичи os.walk.
