2016-03-11 2 views
0

Как отображать файлы из тех же имен каталогов, что и внутри подкаталогов. Рассмотрим структуру папок, как:Показать файлы из одного и того же имени папки в другом месте

. 
+ A 
| a.txt 
| b.txt 
+ B 
| c.txt 
| d.txt 
+ C 
++ A 
|  e.txt 
++ B 
+++  M 
+++  B 
|  g.txt 
| f.txt 

Теперь, если я указываю каталог как B, он должен вернуть c.txt, d.txtf.txt и g.txt.

Я пробовал:

for root, dirs, files in os.walk("D:/user/main"): 
    for dirs in root: 
     if dirs == root: 
      print files 

Но она ничего не возвращает. Где я иду не так?

ответ

0

Попробуйте распечатать корень, директории и файлы для каждой итерации, это поможет понять, что происходит.

"Б" == root.split ("\") [- 1] означает текущий os.walk обрабатывает "D:/пользователь/мянь/XX/XX/Б"

len (файлы) означает просто распечатать файлы, если они существуют, а не печатать, если они не существуют.

import os 
for root, dirs, files in os.walk("D:/user/main"): 
    if "B" == root.split("\\")[-1] and len(files) > 0: 
     print (files) 
+0

~ Большое спасибо :) дает именно то, что я хотел. – HunterrJ