最优化的在Python中扫描非常大的目录的方法

时间:2017-12-03 18:28:04

标签: python subprocess

我想扫描一个80 GB的驱动器,它有多个目录。每个目录包含一些扩展名为.txt的文件,我想将这些文件复制到其他目录中吗?我打算在最短的时间内完成这项工作,如何在Python中实现这一目标。

我能够通过这种方式做到这一点:

import os

DIRS = [dirs for dirs in os.listdir()]

for var in DIRS:
    if var.endswith('.txt'):
        shutil.copy('C:\\users\\testfolder', var)

任何更好的&优化的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

如果您有更深层次的文件夹结构,os.walkos.scandir是为了有效地遍历文件夹结构而制作的。使用os.listdir,您会得到一个列表,如果它们很大,则会比您从os.scandir获得的生成器慢得多。

正如评论中所提到的,你不太可能加快单个硬盘上的写操作,但读操作可以从多个进程中受益。