2013-04-26 74 views
0

我想解析這個目錄,我想查看除三個特定名稱以外的所有txt文件。 隨着我寫的代碼,我可以得到所有目錄中的所有文本文件。我在解析目錄時如何忽略特定文件?

for root,dirnames,filenames in os.walk('D:/datast12'): 
    for filename in fnmatch.filter(filenames, '*.txt'): 
     matches.append([root,filenames]) 

有誰知道我該怎麼辦?

回答

2
files_to_ignore = ('abc.txt', 'foo.txt', 'bar.txt') 

for root,dirnames,filenames in os.walk('D:/datast12'): 
    for filename in fnmatch.filter(filenames, '*.txt'): 
     if filename in files_to_ignore: continue 
     matches.append([root,filenames]) 
+1

或簡單地:'如果文件名不files_to_ignore:matches.append([根,文件名])' – 2013-04-26 11:42:25

+0

或更簡單的,如果'matches'應該是在開始時爲空:'匹配= [[ (文件名,'* .txt')如果文件名不在files_to_ignore中,則爲filename,dirnames,filenames在os.walk('D:/ datast12')中創建文件名' – glglgl 2013-04-26 11:44:59

+0

, files_to_ignore'增長,更重要的是:如果它是'set()','in' /'not in'操作會更快。 – glglgl 2013-04-26 11:46:02