我正在构建一个音乐文件管理器(在python2中),其中我读取了所有文件的元数据&然后将这些文件放在所需的文件夹中。
现在,我已经准备好了命令行界面,但是这个脚本以一种显示“哪个文件正在处理它?”的方式显示反馈。
如果目录中包含5000个mp3文件,则应该有某种反馈。
所以,我想知道找到总数的最有效方法 目录中可用的mp3数量(在所有目录中递归扫描) 后续目录)。
我的想法是跟踪处理的总文件并根据它显示进度条。有没有更好的方法(性能明智),请随时指导。
我希望我的应用程序没有任何类型的平台相关代码。如果这个想法存在严重的性能损失,请建议使用linux。
答案 0 :(得分:2)
我很遗憾地说这个但是没有办法比递归查找文件更有效率(至少那是独立的平台(或文件系统))。
如果文件系统可以为您提供帮助,那么您无法做任何事情来帮助它。
没有递归扫描就无法做到这一点的原因是文件系统的设计方式。 目录可以看作是一个文件,它包含它包含的所有文件的列表。要在子目录中查找内容,您必须先打开目录,然后打开子目录并进行搜索。
答案 1 :(得分:1)
@shadyabhi:如果您有许多子目录,也许可以通过使用os.listdir和multiprocessing.Process来加速进程到每个文件夹。