terabayt
а это? я сильно не вникал
А, она, походу, слила две функции в одну.
l1nx
match = re.match(r'(\d{4}):?(\d{2}):?(\d{2})[_|\s]\d{2}:?\d{2}:?\d{2}', s)
А я ещё думаю, что это регулярка у неё такая странная с двоеточиями для имён файлов.
Значит надо две функции: одна переделывает имя, а другая метаданные изображения. И у них должны быть разные регулярки.
terabayt
строковое представление лучше же переделать через модуль datetime чем переставлять местами символы?!
Когда у тебя есть целые числа, обозначающие временные величины, и тебе нужно сформировать на их основе строку - тогда да. А когда у тебя строки, которые просто нужно переставить местами, - тогда нет.
Модуль datetime отвечает за пределы значений (не даёт им вылазить) и знает роль каждого значения (при формировании минуты не окажутся секундами).
Вот пример:
>>> s = '1.12.2015'
>>>
>>> d, m, y = s.split('.')
>>>
>>> out = '{}_{}_{}'.format(y, m, d)
>>> out
'2015_12_1'
>>>
Для того, чтобы просто переставить части, не нужно знать, что это - дата. А ты говоришь, что, раз это дата, то нужно использовать datetime. А зачем его тут использовать?