<p>由于版本3.4,有内置的迭代器,比<a href="http://docs.python.org/3/library/os.html#os.listdir" rel="noreferrer">^{<cd1>}</a>更有效:</p>
<p><a href="http://docs.python.org/3/library/pathlib.html" rel="noreferrer">^{<cd2>}</a>:<em>在3.4版中是新的。</em></p>
<pre><code>>>> import pathlib
>>> [p for p in pathlib.Path('.').iterdir() if p.is_file()]
</code></pre>
<p>根据<a href="http://www.python.org/dev/peps/pep-0428/" rel="noreferrer">PEP 428</a>,该<a href="http://docs.python.org/3/library/pathlib.html" rel="noreferrer">^{<cd2>}</a>库的目标是提供一个简单的类层次结构来处理文件系统路径和用户对它们执行的常见操作。</p>
<p><a href="http://docs.python.org/3/library/os.html#os.scandir" rel="noreferrer">^{<cd4>}</a>:<em>在3.5版中是新的。</em></p>
<pre><code>>>> import os
>>> [entry for entry in os.scandir('.') if entry.is_file()]
</code></pre>
<p>注意<a href="http://docs.python.org/3/library/os.html#os.walk" rel="noreferrer">^{<cd5>}</a>使用<a href="http://docs.python.org/3/library/os.html#os.scandir" rel="noreferrer">^{<cd4>}</a>而不是3.5版的<a href="http://docs.python.org/3/library/os.html#os.listdir" rel="noreferrer">^{<cd1>}</a>,其速度根据<a href="http://www.python.org/dev/peps/pep-0471/" rel="noreferrer">PEP 471</a>增加了2-20倍。</p>
<p>我也推荐你阅读下面的暗影游侠评论。</p>