<p>Wrt</p>
<blockquote>
<p>I want Python to give me back the number of folders that their files add up to a number like n.</p>
<p>all files are in folders and there does not exist any subdirectories in the folders. There's just files containing images.</p>
</blockquote>
<p>您可以这样做,而不需要自己递归其他dir,因为<a href="https://docs.python.org/3/library/os.html#os.walk" rel="nofollow noreferrer">^{<cd1>} already does that</a></p>
<pre class="lang-py prettyprint-override"><code>def countProcess(home_folder, noOfImg):
noOfDir = 0
for _, _, files in os.walk(home_folder):
if len(files) == noIfImg:
noOfDir += 1
return noOfDir
</code></pre>
<p>由于<code>True</code>的计算结果为1,而<code>False</code>的计算结果为0,因此它可以作为一个线性函数完成:</p>
<pre class="lang-py prettyprint-override"><code>def countProcess(home_folder, noOfImg):
return sum(len(files) == noIfImg for _, _, files in os.walk(home_folder))
</code></pre>
<hr/>
<p>编辑:如果不想对根目录中的文件计数,请添加一个标志以排除第一个循环,该循环用于作为参数提供给<code>os.walk()</code>的根目录:</p>
<pre class="lang-py prettyprint-override"><code>def countProcess(home_folder, noOfImg):
noOfDir = 0
first = True
for _, _, files in os.walk(home_folder):
if not first and len(files) == noIfImg:
noOfDir += 1
first = False
return noOfDir
</code></pre>