2017-02-22 23 views
2

Мне нужно скопировать похожие конфигурационные файлы в самый конец каждого дочернего дерева произвольной глубины. Я использую os.walk() для получения dirName и subdirlist, но не могу получить, как обеспечить копирование только для последнего subdir. Пример: tree dir/sd1/sd2 dir/sd3/sd4/sd5 dir/sd6/sd7/sd8/sd9/sd10Обнаружение последнего subdir os.walk()

есть сотни подкаталогов, реж имена довольно случайно, я использую их, чтобы изменить несколько строк в конфигурационном файле (я использую FileInput библиотеки там без проблем, чтобы заменить несколько строк в шаблоне). как отфильтровать только путь до конца и копировать только в sd2, sd5, sd10? Я тоже пробовал вариант сверху вниз, но не смог.

+0

вы можете привести пример того, что вы хотите скопировать? файлы? каталоги? где находятся файлы? –

ответ

3

Это кажется довольно простым os.walk() API:

import os 

for root, dirs, files in os.walk('.'): 
    if not dirs: 
     print(root, "is a directory without subdirectories") 
     # do whatever you need to do with your files here 
+0

спасибо, что я хотел; протестирован, он работает (вы слишком быстро :) можете принимать ответ только через 6 минут :) – Drako