如何有效地从 Python 中的目录(包括子目录)中选择 100 个随机 JPG 文件



我有一个非常大的文件和文件夹目录。目前,我扫描整个目录以查找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

谢谢

参见 系统程序员的生成器技巧 一堆整洁的东西。但具体来说,请参阅生成查找示例。这是您将要获得的效率,而无需对文件结构布局进行大量假设。

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

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

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

最新更新