2013-06-05 231 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 
相關問題