当前位置: 首页 > 面试题库 >

从目录中选择随机文件的最佳方法

陶和歌
2023-03-14
问题内容

从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对象基本上是不可变的(在缓存目录列表之后,再也不会读取它),因此并发读取它不会造成任何危害。

除此之外,我不明白为什么您会看到此解决方案有任何问题。没事。



 类似资料:
  • 问题内容: 我正在尝试建立一个用户可以提交照片的网站,然后在另一个页面上一个一个地随机查看其他照片。我有一个名为“上传”的目录,其中提交了图片。我无法从文件中读取图片。我只想从目录上传中随机选择一张图片,并将其显示在页面上。任何建议表示赞赏。 问题答案: 您可以使用glob获取目录中的所有文件,然后从该数组中获取随机元素。这样的函数将为您完成此任务:

  • 问题内容: 我想要在PostgreSQL中随机选择行,我尝试了以下方法: 但是其他一些建议: 我有一个很大的表,有5亿行,我希望它能很快。 哪种方法更好?有什么区别?选择随机行的最佳方法是什么? 问题答案: 根据您的要求(加上注释中的其他信息), 您有一个数字ID列(整数),并且只有很少(或很少有)间隙。 显然没有或只有很少的写操作。 您的ID列必须建立索引!主键很好用。 下面的查询不需要大表的顺

  • 问题内容: 从大型mysql表中选择随机行的快速方法是什么? 我正在使用php,但是我对任何解决方案都感兴趣,即使它是另一种语言也是如此。 问题答案: 获取所有ID,从中随机选择一个ID,然后检索整行。 如果您知道ID是连续无孔的,则只需获取最大值并计算一个随机ID。 如果到处都有孔,但大多数是顺序值,并且您不关心随机偏斜,则获取最大值,计算一个id,然后选择ID等于或大于您所计算的ID的第一行。

  • 我试图开发一个刽子手作为作业,但无法从文本文件中随机获得一个单词(其中有各种单词,每个单词之间用空格分隔)。我编写了一个代码来获取一个随机单词,但无法选择一个单词并用示例字符串(string w=“this”)替换它我在“Function()”中找到了。

  • 例如:是Firestore中的一个集合,我在该集合中有1000名学生,我的要求是在每次调用中随机选择10名学生。