【发布时间】:2015-05-13 05:07:56
【问题描述】:
我需要从包含 163.360 个文件的文件夹中将 1460 个文件加载到一个列表中。
我使用以下 python 代码来执行此操作:
import os
import glob
Directory = 'C:\\Users\\Nicolai\\Desktop\\sealev\\dkss_all'
stationName = '20002'
filenames = glob.glob("dkss."+stationName+"*")
到目前为止,它一直运行良好,但是今天当我启动机器并运行代码时,它就卡在了最后一行。我尝试重新启动,它没有帮助,最后我只是让它运行,去午休,回来就完成了。花了45分钟。现在当我运行它时不到一秒钟,发生了什么?这是缓存的事情吗?如何避免再次等待 45 分钟?任何解释将不胜感激。
【问题讨论】:
-
你能改变文件系统吗?有些人在这里可能比其他人做得更好......但这不是你可以从你的 Python 代码中修复的。
-
@RvdK,很好——这比stackoverflow.com/questions/4403598/…写得更好,也更切题。
-
顺便说一句,如果您可以将每个站点移动到其自己的子目录中,这将提高效率。
-
如果你看看 NNTP 假脱机是如何设计的——将 ID 散列到小目录中......好吧,现在你知道为什么了。 (当然,这主要是为了改进 known ID 的查找,具有索引目录的文件系统——这是 Linux 的 ext3 和 ext4 中的一个可选功能——也可以解决)。