2012-05-21 8 views
0

Im пытается добавить "." после последнего вхождения целого числа, начиная назад от ".html"python добавить символ в filename

питон

import os 
import glob 
import re 
for name in glob.glob('*.html'): 
    newname = re.compile('name(.*?)(\d+)') 
os.rename(name, newname) 

имен файлов изменение от:

1cor12.html 
gen1.html 

к:

1cor.12.html 
gen.1.html 

ответ

3

Нечто подобное должно сделать:

re.sub('(\d+)(?=\.html)', r'.\1', s) 
+0

Это также не работает, если цифры не сразу следуют за * .html *. – kojiro

2

Является ли это то, что вам хотеть?

re.sub(r'(\d+\.html)',r'.\1',r'1cor12.html') 

Заметим, что это работает только, если вы хотите номера сразу предшествующее ".html". Другими словами, это ничего не сделает для «gen1a.html».

Если вы хотите, чтобы соответствовать последний случай ('gen1a.html'), вероятно, можно сделать что-то вроде:

re.sub(r'(\d+\D*\.html)',r'.\1',r'1cor12.html') 
+1

Это выиграл» t, если цифры не сразу предшествуют * .html *. – kojiro

+0

цифры всегда бывают раньше .html, но не меняют «gen1.html» на «gen.1.html» – Blainer

+0

@Blainer - Он работает для меня ... – mgilson

0
newname = "%s.%s.html" % re.match(r"(.*)(\d+)\.html", oldname).groups() 
Смежные вопросы