Как получить строку даты и времени для суффикса моих имен файлов?

Мне нужна функция для генерации имен файлов данных с суффиксом, который должен быть текущей датой и временем.

Хочу на свидание 18 февраля 2014 15:02 как то так:

data_201402181502.txt

Но это то, что я получаю: data_2014218152.txt

Мой код...

import time

prefix_file = 'data'
tempus = time.localtime(time.time())    
suffix = str(tempus.tm_year)+str(tempus.tm_mon)+str(tempus.tm_mday)+
    str(tempus.tm_hour)+str(tempus.tm_min)
name_file = prefix_file + '_' + suffix + '.txt'

3 ответа

Решение

Ты можешь использовать time.strftime для этого, который обрабатывает начальные нули, например, за месяц:

from time import strftime

name_file = "{0}_{1}.txt".format(prefix_file, 
                                 strftime("%Y%m%d%H%M"))

Если вы просто превратите целое число в строку, используя str, у него не будет ведущего нуля: str(2) == '2', Однако вы можете указать это, используя str.format синтаксис: "{0:02d}".format(2) == '02',

Похоже, вы хотите

 date.strftime(format)

Строка формата позволит вам контролировать вывод strftime, попробуйте что-то вроде: "%b-%d-%y" с http://docs.python.org/2/library/datetime.html

С помощью str.format с datetime.datetime объект:

>>> import datetime
>>> '{}_{:%Y%m%d%H%M}.txt'.format('filename', datetime.datetime.now())
'filename_201402182313.txt'
Другие вопросы по тегам