我有一个脚本,它从一个表单中获取一个文件,重命名它,并将它上载到一个文件夹,然后将记录插入到数据库中。我想添加一个功能,在保存文件之前,它会检查上载文件夹,以确定文件名是否存在。如果存在,则在循环中重命名文件,然后保存文件。
我目前拥有:
file = request.files['xx']
extension = os.path.splitext(file.filename)[1]
xx = str(uuid.uuid4()) + extension
## if xx exists .. xx = str(uuid.uuid4()) + extension.. loop endlessly.
file.save(os.path.join(app.config['UPLOAD_FOLDER'], xx)
6条答案
按热度按时间wmomyfyw1#
还没有测试过这个,但是你可以使用
os.path.isfile()
来检查一个文件是否已经存在(对于目录,使用os.path.exists
)。xn1cxnb42#
快速和肮脏的,还没有测试这个。使用检查和重命名功能递归添加“_1”,“_2”等到文件名的结尾,直到它可以保存。
sg3maiej3#
这将检查文件是否存在,并通过增加一个数字生成一个不存在的新名称:
cgvd09ve4#
你试过使用
glob
Module,它提供了一个类似于ls
的接口,你可以如下使用它:omjgkv6w5#
0yg35tkg6#
改进了N.Walters的答案,但这样你就有了一个函数,它只解析
file_path
并返回一个有效的,使用内部的Path
类: