Python:检查在给定路径下是否存在非目录文件

时间:2018-10-29 12:15:57

标签: python python-3.x sorting

我有一个目录,其中包含来自数据转储的大量文件(〜1.4M),我想将它们分类到子目录中以创建更小的批量。 由于我要批量处理目录中的大量文件,因此我想避免必须os.listdir(...)目录中的所有内容,然后测试所有结果是否为目录。

到目前为止,我的想法是使用os.walk(...)进行检查。

是否有更pythonic /更有效的方法来实现我想要的?

1 个答案:

答案 0 :(得分:1)

作为os.listdir()的替代方法,可以在Python 3.5+上使用os.scandir()。这将返回DirEntry对象的迭代器,并且不会像os.walk那样递归到子目录中。

下面是https://github.com/sinonjs/sinon/issues/664中的一个示例:

for entry in os.scandir(path):
   if not entry.name.startswith('.') and entry.is_file():
       print(entry.name)