2013-05-31 73 views
0

我想打印每一个文件的路径名及其子文件夹的文件夹
这是代码在我到目前为止:打印文件夹的路径名及其子文件夹递归

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

请不要像这样格式化你的代码,复制并粘贴在这里,突出显示它,然后按CTRL-K – jamylak

+0

@jamylak是的抱歉,我wa这是我第一次发布任何内容。谢谢! – Bob

+0

该代码有什么问题? –

回答

1

你寻找os.walk

您可以使用它像:

def traverse(path): 
    for root, dirs, files in os.walk(path): 
     print(root) 

     # if you want files too: 
     for f in files: 
      print(os.path.join(root, f)) 
+0

这就是我所需要的感谢。但是使用os.walk和os.listdr有什么区别?我是python的新手,递归给我一段艰难的时间 – Bob

+0

'os.walk'会递归地查看目录树。 'os.listdir'只是给你一个文件列表,而不会深入到子文件夹。 – Seth

0

我不知道这是什么说法的目的:

item = os.path.join(path, d) 

我写的代码,因为我的理解:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import os 

def traverse(path): 
    for item in os.listdir(path): 
     newpath = os.path.join(path, item) 
     if os.path.isdir(newpath): 
      traverse(newpath) 
     else: 
      print newpath 

if __name__ == '__main__': 
    traverse('.') 
相关问题