python - Django 删除重复的图像
问题描述
我正在尝试从给定目录返回随机但不同的图像。
我编写了一个函数,它将从目录返回随机图像,但我需要它返回不同的图像,目前它返回图像但其中一些是重复的。
做这个的最好方式是什么?任何帮助,将不胜感激。
随机图像.py
def random_image(image_dir):
valid_extensions = ['.jpg', '.jpeg', '.png', '.gif']
rand_dir = '/static/app_pickfeel/images/'
# print(rand_dir)
files = [f for f in os.listdir(settings.BASE_DIR + '/app_pickfeel/static/app_pickfeel/images')
if f[f.rfind("."):len(f)] in valid_extensions]
print(random.choice(files))
return rand_dir + random.choice(files)
我正在使用template.html中的函数多次调用它
<img class="img-thumbnail" src="{{ MEDIA_URL}}{% random_image 'app_pickfeel/images/' %}">
解决方案
您可以尝试set()从列表中删除重复项
def random_image(image_dir):
valid_extensions = ['.jpg', '.jpeg', '.png', '.gif']
rand_dir = '/static/app_pickfeel/images/'
# print(rand_dir)
files = [f for f in os.listdir(settings.BASE_DIR + '/app_pickfeel/static/app_pickfeel/images')
if f[f.rfind("."):len(f)] in valid_extensions]
remove_duplicate = set(files)
final_list = list(remove_duplicate)
print(random.choice(final_list))
return rand_dir + random.choice(final_list)
希望这可以帮助你...
推荐阅读
- algorithm - 在一组芯片之间寻找有缺陷的芯片
- java - 如何使用 java 10 在 maven 中添加 javafx 依赖项
- javascript - Sentry 与 React/Node 应用程序集成 - 当前版本没有问题
- julia - 将 MutivariatePolynomials 输出作为用户定义函数导入 JuMP
- python - 使用 for 循环在字典中创建键及其值
- c# - C# 将 XML 值加载到以名称为索引的字典中
- gremlin - 它不会添加具有正确进出顶点的边
- c# - 比较两个字符串列表时的 cosmosDb SQL API LINQ 优化
- go - 在 cli 中使用进度条
- cognos - 如何使用 Cognos Analytics 为不同的列定义不同的聚合函数(例如:平均值、总和)?