2

我有一个非常大的文件和文件夹目录。目前,我扫描整个目录以查找 JPG 并将它们存储在一个列表中。由于目录的大小,这真的很慢。有没有更快、更有效的方法来做到这一点?也许不用扫描所有东西?

我的目录如下所示:

/library/Modified/2000/[FolderName]/Images.JPG
/library/Modified/2001/[FolderName]/Images.JPG
/library/Modified/2002/[FolderName]/Images.JPG
/library/Modified/2003/[FolderName]/Images.JPG
/library/Modified/2004/[FolderName]/Images.JPG
...
/library/Modified/2012/FolderName/Images.JPG

谢谢

4

3 回答 3

2

请参阅面向系统程序员的生成器技巧,了解一堆简洁的东西。但具体来说,请参见gen-find示例。这与您将获得的一样有效,无需对您的文件结构布局做出大量假设。

于 2012-06-05T13:09:46.060 回答
1

假设您的应用程序是唯一一个更改目录,并且您可以控制目录名称/结构,并且您必须多次执行问题中描述的操作:

一次重命名所有文件,以便您可以按可预测的顺序访问它们。比如说,给所有文件从 1 到 N 的数字名称(其中 N 是目录中的文件数),并有一个特殊的文件“.count”,它将为每个目录保存 N。然后使用随机生成器生成的名称直接访问它们。

于 2012-06-05T13:13:07.487 回答
1

我不知道缓慢发生在哪里,但是为了扫描目录和文件,我发现首先使用批处理文件将目录/文件转储到文本文件中然后让 python 读取文件要快得多。这在我们拥有 7 台服务器和数千个目录的服务器系统上运行良好。Python 当然可以运行批处理文件。

于 2012-06-05T13:28:08.230 回答