擅长:python、mysql、java
<p>一个名为<a href="https://docs.python.org/2/library/os.html#os.walk" rel="nofollow noreferrer">^{<cd1>}</a>的内置函数已经做到了这一点。但是,为了回答您的问题,您需要遍历<code>files</code>列表。您还需要通过递归向下传递<code>all_files</code>和<code>some_files</code>,这样它们就可以在运行时累积起来。您还需要返回<code>all_files</code>和<code>some_files</code>(python允许您以元组的形式返回多个值)。然后可以为<code>all_files</code>和<code>some_files</code>添加递归返回的值。你知道吗</p>
<pre><code>def traverseDir(path, all_files=0, some_files=0):
# ... your existing code
files = os.listdir(path)
for f in files:
# extend the path
full_path = os.path.join(path, f)
# unroll the returned values from the recursion
rec_all_files, rec_some_files = traverseDir(full_path, all_files, some_files)
# accumulate the values
all_files += rec_all_files
some_files += rec_some_files
return all_files, some_files
</code></pre>
<p>这将对列出的每个文件调用<code>traverseDir()</code>。反过来,该递归将对它列出的每个文件调用<code>traverseDir()</code>。你知道吗</p>