在django中将当前日期时间添加到上传的文件中

时间:2017-09-05 19:02:48

标签: python django file-upload

我正在尝试将datetime添加到上传的文件中。

如果文件名是filename.xml,那么我想将名称更改为filename-<date>-<time>.xml

def handle_uploaded_file(self, f):
    name = "static/uploads/{0}".format(f.name)
    with open(name, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)

非常感谢任何帮助。提前谢谢。

3 个答案:

答案 0 :(得分:0)

您可以将字符串连接与datetime模块一起使用。请看下面的小片段作为示例。

import datetime
name = 'filename.xml'
name = name[:-4] + '_'+str(today.ctime()) + '_.xml'
print(name)

答案 1 :(得分:0)

import datetime
date_time = datetime.datetime.now()
def handle_uploaded_file(self, f):
    name = "static/uploads/{0}".format(f.name)
    file_name,extension = name.split('.')
    modified_name = file_name+''+date_time
    name = modified_name+extension
    with open(name, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)

答案 2 :(得分:0)

您可以使用datetime模块分别获取日期和时间。

<强>解决方案

from datetime import datetime
def handle_uploaded_file(self, f):
    _datetime = datetime.now()
    datetime_str = _datetime.strftime("%Y-%m-%d-%H-%M-%S")
    # if there are more than one dots
    file_name_split = f.name.split('.')
    file_name_list = file_name_split[:-1]
    ext = file_name_split[-1]
    file_name_wo_ext = '.'.join(file_name_list)

    name = '/path/to/uploads/{0}-{1}.{2}'.format(file_name_wo_ext, datetime_str, ext)
    # rest of the code

参考:datetime module in Python 3 docs

如果要从时间中删除微秒组件,请关注this answer