擅长:python、mysql、java
<p>为了获得更好的结果,可以将<code>os</code>模块的<code>listdir()</code>方法与生成器一起使用(生成器是保持其状态的强大迭代器,记得吗?)。以下代码对这两个版本都适用:Python 2和Python 3。</p>
<p>这里有一个代码:</p>
<pre><code>import os
def files(path):
for file in os.listdir(path):
if os.path.isfile(os.path.join(path, file)):
yield file
for file in files("."):
print (file)
</code></pre>
<p><code>listdir()</code>方法返回给定目录的条目列表。如果给定项是文件,则方法<code>os.path.isfile()</code>返回<code>True</code>。并且<code>yield</code>运算符退出func,但保持其当前状态,并且只返回作为文件检测的条目的名称。所有这些都允许我们在生成器函数上循环。</p>