alexeyvanzhula
Имя file может быть любое и не обязательно с номером и необязательно с расширением.
Так что кусок кода явно должен быть побольше. Какие варианты можете предложить? - скорость выполнения критична.
ты не знаешь, что ты хочешь, поэтому ты не знаешь, что нужно сделать
alexeyvanzhula
имеется ввиду, например, вызов функции с именем file.ext и возврат file1.ext
здесь, к примеру, никакого инкрементирования нет, потому что номера изначально нет, и происходит вставка
alexeyvanzhula
Есть строка вида file_01.ext. Нада инкрементально увеличивать\уменьшать номер.
>>> import re
>>>
>>> def f(s, op, n):
... # дано : строка s, в которой есть число,
... # операция op (1 - плюс, -1 - минус) и число n
... # получить: ответ = строка s, в которой к числу прибавлено
... # число n или отнято (в зависимости от op)
... assert op in (1, -1)
... def t(mo):
... # дано : объект-совпадение mo с двумя группами
... # получить: в первой группе число увеличено или уменьшено на n
... # (ширина числа не меньше исходной)
... num, end = mo.groups()
... nlen = len(num)
... newnum = int(num) + op * n
... return '{0:0{w}}{1}'.format(newnum, end, w=nlen)
... return re.sub(r'(\d+)(\D*)$', t, s)
...
>>> f('file_01.ext', 1, 5)
'file_06.ext'
>>> f('file_01.ext', -1, 5)
'file_-4.ext'
>>> f('00001234', 1, 100)
'00001334'
>>> f('00001234', -1, 100)
'00001134'
>>>