【发布时间】:2021-06-15 22:10:04
【问题描述】:
我有一个目录,其中包含超过 300 万个文件(我应该一开始就避免创建)。使用 os.scandir() 简单地打印出名称,
for f in os.scandir():
print(f)
对于前 200,000 个文件,每个项目需要 0.004 秒,但会大幅减慢到每个项目 0.3 秒。再次尝试时,它还是做了同样的事情——前约 200,000 人快速,然后慢下来。
等待一个小时后再次运行它,这一次它对于前约 400,000 个文件来说很快,但随后以同样的方式变慢。
这些文件都是从 1908 年到 1963 年之间的一年开始的,所以我尝试使用 bash 命令重新组织文件,例如
for i in {1908..1963}; do
> mkdir ../test-folders/$i;
> mv $i* ../test-folders/$i/;
> done
但它最终会被挂断并且永远无法到达任何地方......
关于如何重新组织这个巨大的文件夹或更有效地列出目录中的文件有什么建议吗?
【问题讨论】:
标签: python operating-system scandir