2013-03-15 2 views
0

вот мой код и ошибка! пожалуйста, дайте мне подсказкукак распечатать путь к каждому файлу или папке рекурсивно

import os 
def traverse(path, d): 
    for item in os.listdir(path): 
     item = os.path.join(path, d) 
     try: 
      traverse(path,d) 
     except: 
      print (path) 

мою ошибку:

traverse ("test",0) 
Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    traverse ("test",0) 
    File "C:\Users\Phuchu\Desktop\Python\homework8.py", line 65, in traverse 
    for item in os.listdir(path): 
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'test\\*.*' 
+0

Что такое текущий каталог? Является ли 'test' подкаталогом этого? –

+0

вы не должны вызывать свою функцию с '' *. * ''Как параметр для' d' – thkang

+0

да это is.And также тест имеет пару папок в нем – user2011873

ответ

1

Вы можете предпочесть использовать os.walk, который больше питоновски. Он превратит рекурсию в простую для понимания петлю и будет управлять переходом на каталоги для вас.

1

использование os.walk

import os 

def traverse(current_dir): 
    for root, dirs, files in os.walk(current_dir): 
     #print all files recursively 
     for file in files: 
      print os.path.join(root,file) 
     #print all folders recursively 
     for dir in dirs: 
      print os.path.join(root,dir) 
Смежные вопросы