Найти - Пользователи
Полная версия: удаление недопустимых символов из строки
Начало » Python для новичков » удаление недопустимых символов из строки
1
aCL
Есть скрипт, который парсит сайт с книгами и складывает полученные файлы (.zip) в положенную папку. Имя файла - название_книги.zip. Название книги получаю с сайта, может содержать символы “:*?”<>|", т.е. те символы, с которыми сохранять файл в винде невозможно. Есть ли строковая функция, удаляющие эти символы? Естественно, нужно оставлять запятые, тире и т.п. Думал пробегать по строке несколькими replace'ами, но как-то неэлегантно…
pylin
Я думаю, стоит посмотреть в сторону регулярных выражений и модуля re. По-моему именно функции, чтобы нормализовывала строки под правила именования файлов в windows/*nix нет.
py.user.next
>>> import re
>>> 
>>> s = 'abc<>-_()[]defабвг'
>>> 
>>> out = re.sub(r'[<>]', r'', s)
>>> out
'abc-_()[]defабвг'
>>>
JOHN_16
aCL
filename=s.translate(None, ':*?”<>|')
где s, естественно, исходная строка. Думаю достаточно элегантно.
aCL
Ооо, точно, регулярки. Про них пока только пару статеек прочитал, видимо, время ими заняться.
Спасибо)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB