我有一个非常大的文件和文件夹目录。目前,我扫描整个目录中的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
由于
答案 0 :(得分:2)
请参阅Generator Tricks for System Programmers了解一堆简洁的内容。但具体来说,请参阅gen-find示例。这样做非常有效,而无需对文件结构布局做出一系列假设。
答案 1 :(得分:1)
假设您的应用程序是唯一一个更改目录,并且您可以控制目录名称/结构,并且您必须多次执行问题中描述的操作:
重命名所有文件,以便以可预测的顺序访问它们。比如说,给所有文件的数字名称从1到N(其中N是目录中的文件数),并有一个特殊文件“.count”,它将为每个目录保存N.然后直接使用随机生成器生成的名称访问它们。
答案 2 :(得分:1)
我不知道缓慢发生的地方,但是为了扫描目录和文件我发现它更快,首先使用批处理文件将目录/文件转储到文本文件中,然后让python读取文件。这在我们的服务器系统上运行良好,有7台服务器和数千个目录。 当然,Python可以运行批处理文件。