我有一个目录,其中包含来自数据转储的大量文件(〜1.4M),我想将它们分类到子目录中以创建更小的批量。
由于我要批量处理目录中的大量文件,因此我想避免必须os.listdir(...)
目录中的所有内容,然后测试所有结果是否为目录。
到目前为止,我的想法是使用os.walk(...)
进行检查。
是否有更pythonic /更有效的方法来实现我想要的?
答案 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)