2016-10-26 82 views
0

我有以下代碼可以工作,但它在所有子目錄中搜索,我只想搜索直接目錄並限制搜索對於文件夾,我不需要文件cound,任何人都可以建議如何做到這一點?如何找出目錄中的文件夾數量(不是子目錄)

import os 

files = folders = 0 

path = "\\\\snowcone\\builds708\\INTEGRATION\\CI_LA.UM.5.7-45903-8x98.1-4\\LINUX\\android\\out\\target\\product" 

for _, dirnames, filenames in os.walk(path): 
    #^this idiom means "we won't be using this value" 
    files += len(filenames) 
    folders += len(dirnames) 

print "{:,} files, {:,} folders".format(files, folders) 
+0

如果你不想下降到子目錄,爲什麼你走文件樹,而不是隻列出文件? – Falmarri

+0

@Falmarri - 我應該怎麼使用?我不需要列出文件數量,我只需要文件夾數 –

回答

2

你可以做到這一點,而不是

import os 
len([i for i in os.listdir(path) if os.path.isdir(i)]) 

或者建議(從創建列表保存):

import os 
sum(os.path.isdir(i) for i in os.listdir(path)) 
即使很好的答案已經給你
+0

我有一個路徑(dir)作爲輸入..我需要使用 –

+2

創建一個列表來獲得它的長度是過度殺傷。在這種情況下可能會好,但一般來說這不是一個好主意。在os.listdir('。'))中選擇'sum(os.path.isdir(i)for i)'。 –

+0

@JeffShort你可以用'path'替換''.''。 –

0

好,這是另一個只是爲了它。我認爲解決方案雖然不夠優雅,效率也不高。

import os 

path = 'your_path_goes_here' 
number_of_dirs = len(list(filter(os.path.isdir, os.listdir(path)))) 
相關問題