2016-08-13 58 views
0

所以我有一個文件系統,我希望能夠使用python進行檢查和更新。我的解決方案是os.walk,但它隨我的需求和我的文件系統而變得有問題。這是目錄的佈局方式:Python os.walk跳過具有特定名稱而不是路徑的目錄

Root 
dir1 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
dir2 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
... 

主目錄有因此不同的名字「DIR1」和「DIR2」,但裏面那些目錄具有相同的名稱,對方幷包含了很多不同的文件和目錄。子目錄是我想從os.walk中排除的,因爲它們增加了不必要的計算。

有沒有一種方法可以根據目錄的名稱而不是路徑從os.walk中排除目錄,還是我需要做其他的事情?

回答

6

os.walk允許您修改它給您的目錄列表。如果你拿出一些,它不會進入這些目錄。

for dirpath, dirnames, filenames in os.walk("/root/path"): 
    if "subdir" in dirnames: 
     dirnames.remove("subdir") 
    # process the files here 

(請注意,如果您使用掃描的自下而上的風格,這並不工作。)

See the documentation

相關問題