从Python目录中选择随机文件的最佳方法是什么?
编辑:这是我正在做的事情:
import os import random import dircache dir = 'some/directory' filename = random.choice(dircache.listdir(dir)) path = os.path.join(dir, filename)
这特别糟糕,还是有更好的方法?
import os, random random.choice(os.listdir("C:\\")) #change dir name to whatever
关于您编辑过的问题:首先,我假设您了解使用a的风险dircache
,以及自2.6以来已弃用并在3.0中删除的事实.
其次,我不知道这里存在任何竞争条件.您的dircache
对象基本上是不可变的(在缓存目录列表之后,它永远不会被再次读取),因此并发读取不会造成任何损害.
除此之外,我不明白为什么你看到这个解决方案有任何问题.没事.
如果你想要包含目录,Yuval A的回答.除此以外:
import os, random random.choice([x for x in os.listdir("C:\\") if os.path.isfile(os.path.join("C:\\", x))])