繁体   English   中英

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

[英]How can I efficiently select 100 random JPG files from a directory (including subdirs) in Python?

我的文件和文件夹目录很大。 目前,我在整个目录中扫描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

谢谢

有关大量实用内容,请参见系统程序员的生成器技巧 但具体来说,请参见gen-find示例。 这与您将要获得的效率一样,而无需对文件结构布局进行大量假设。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM