2013-06-05 176 views
0

假设我有路径目录pathname。我可以通过做打印出当前目录和子目录中的所有文件在Python

glob.glob('*') 

打印在该目录中的所有文件,但并不在子目录中打印出来的文件(如dir/file1.txt

是否可以打印出所有文件在此目录中以及所有子目录?这只是用有点难度os.walk

import os 
for dirpath, dirnames, filenames in os.walk('.'): 
    for f in filenames: 
     print os.path.join(dirpath, f) 

你也可以使用这个作为发电机表达

for filename in (os.path.join(dp, f) for dp, dn, fn in os.walk('.') for f in fn): 
    # do something with filename 
+0

尝试'glob.glob( '**/*')',从'pathname'和下面的所有文件,尝试'glob.glob(”路径名/ **/*')',对于所有目录,请尝试'glob.glob('pathname/**/* /')'。 – mtadd

回答

3

例子:

for (dirname, subs, files) in os.walk('.'): 
    print('[' + dirname + ']') 
    for fname in files: 
     print(os.path.join(dirname, fname)) 

here for more info

+0

+1生成器表达式 – mshildt

0
import os 

top = 'F:/some/path/' 
for root, dirs, files in os.walk(top, topdown=False): 
    for name in files: 
     print name 
相关问题