gpt4 book ai didi

python - Django 唯一文件名方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:28 25 4
gpt4 key购买 nike

我正在寻找上传文件时 Django 用来生成唯一文件名的方法。

例如,如果我在同一目录中两次上传名为 test.csv 的文件,则第一个文件将保存为 test.csv,第二个文件将保存为 test.csv保存为 test_2.csv。我已经尝试找出 Django 是如何管理它的,但我只找到了 django.utils.text.get_valid_filename 这可能有用,但这不是我要找的......

我已经看到了 other topics使用随机命名解决方案,这不是我在这里寻找的:)我真的很想了解 Django 如何解决这个问题。

最佳答案

实际上,在您的帮助下,我仔细查看并发现了一些东西:)

所以基本上我必须做类似的事情:

from django.core.files.storage import FileSystemStorage

fss = FileSystemStorage()
filepath = fss.get_available_name(filepath)

谢谢大家:)

PS:有兴趣的评论来自django.core.file.storage.FileSystemStorage._save说:

There's a potential race condition between get_available_name and saving the file; it's possible that two threads might return the same name, at which point all sorts of fun happens. So we need to try to create the file, but if it already exists we have to go back to get_available_name() and try again.

关于python - Django 唯一文件名方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com