擅长:python、mysql、java
<p>这里有一个比<code>os.walk()</code>更慢的替代方法,即使用<code>os.listdir()</code>的简单递归。小心使用<code>ret_dirs=[]</code>它是一个可变变量,指针通过递归保持不变</p>
<pre><code>import os
def get_num_nf(root, num, ret_dirs=[]):
n_files = 0
for entry in os.listdir(root):
full_path = os.path.join(root, entry)
if os.path.isdir(full_path):
get_num_nf(full_path, num)
elif os.path.isfile(full_path):
n_files += 1
if n_files >= num:
ret_dirs.append(root)
return ret_dirs
if __name__ == '__main__':
dirs = get_num_nf('./env', 100)
print(len(dirs))
for path in dirs:
print(path)
</code></pre>