Форум сайта python.su
0
Есть скрипт, который парсит сайт с книгами и складывает полученные файлы (.zip) в положенную папку. Имя файла - название_книги.zip. Название книги получаю с сайта, может содержать символы “:*?”<>|", т.е. те символы, с которыми сохранять файл в винде невозможно. Есть ли строковая функция, удаляющие эти символы? Естественно, нужно оставлять запятые, тире и т.п. Думал пробегать по строке несколькими replace'ами, но как-то неэлегантно…
Офлайн
1
Я думаю, стоит посмотреть в сторону регулярных выражений и модуля re. По-моему именно функции, чтобы нормализовывала строки под правила именования файлов в windows/*nix нет.
Офлайн
857
>>> import re >>> >>> s = 'abc<>-_()[]defабвг' >>> >>> out = re.sub(r'[<>]', r'', s) >>> out 'abc-_()[]defабвг' >>>
Офлайн
221
aCL
filename=s.translate(None, ':*?”<>|')
Отредактировано JOHN_16 (Апрель 23, 2014 00:05:12)
Офлайн
0
Ооо, точно, регулярки. Про них пока только пару статеек прочитал, видимо, время ими заняться.
Спасибо)
Офлайн