Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2018 16:30:25

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

Тут почитайте.
И повставляйте символы в ILLEGAL_CHARS

 import re
test_str = 'so|m}e:te^xt\\31\K`-34//>'
ILLEGAL_CHARS = "[<>`{}^&:/\\|?*\"]|[\0-\31]"
def __removeIllegalChars(name):
    return re.sub(ILLEGAL_CHARS, "", name)
print(__removeIllegalChars(test_str))
sometext\31\K-34
Process finished with exit code 0
1 мин гугления - https://stackoverflow.com/questions/6745097/how-to-check-for-platform-incompatible-folder-file-names-in-python

Отредактировано papuas (Март 5, 2018 16:36:11)

Офлайн

#2 Март 5, 2018 16:39:44

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

А что если я предложу неожиданное решение?

 exceptions = {'\\', '/', '|', '<', '>', '?', ':', '"', '*'}
def my_check(s):
    return bool(set(s).intersection(exceptions))



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 5, 2018 16:48:39

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

JOHN_16
А что если я предложу неожиданное решение?
Вот! Выглядит круто. И наверняка быстро. Ушел тестить, Спасибо.

Офлайн

#4 Март 5, 2018 16:59:37

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

JOHN_16
А что если я предложу неожиданное решение?
Нот бэд.
Но что-то не пойму, а что автор собрался скриптами создавать триллионы папок каждую секунду ?
вопрос стоял вроде так - как создать валидные имена папок в виндузе, а не как быстрее создать?

Офлайн

#5 Март 5, 2018 17:05:06

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

papuas
Но что-то не пойму, а что автор собрался скриптами создавать триллионы папок каждую секунду ?
ну конечно же нет, этот синдром называется “Преждевременная оптимизация”, или его запущенна версия “Экономия на спичках”
papuas
вопрос стоял вроде так - как создать валидные имена папок в виндузе, а не как быстрее создать?
Автор имеет в голове смешанный поток сознания, поэтому по итогу оба понятия переплились.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Март 5, 2018 17:07:15

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

JOHN_16
Т_Т.

А это лечится?

Офлайн

#7 Март 5, 2018 17:09:09

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

Почему тяга к прекрасному (а как еще назвать попытку написания скрипта с меньшим временем работы) так жестоко осуждается обществом?

Офлайн

#8 Март 5, 2018 17:16:07

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

SomethingButNotNickName
Почему тяга к прекрасному (а как еще назвать попытку написания скрипта с меньшим временем работы) так жестоко осуждается обществом?
потому что Вы неопытный пользователь питона и объяснять вам некоторые вещи … ну мне например сложно настолько что на грани невозможно. Хотя бы потому что вот в этой фразе уже есть ошибка.
SomethingButNotNickName
А это лечится?
Да, опытом.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Март 5, 2018 17:18:51

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

SomethingButNotNickName
Почему тяга к прекрасному (а как еще назвать попытку написания скрипта с меньшим временем работы) так жестоко осуждается обществом?
Не,не,не…
это Вы уважаемый путаете теплое с мягким.
никто, ничего не осуждал.
да и тяги к прекрасному у Вас пока маловато.

Отредактировано papuas (Март 5, 2018 17:20:50)

Офлайн

#10 Март 5, 2018 17:33:15

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка строки на наличие запрещенных символов

Можно максимально подробно объяснить, что делает эта (вторая) строка. И что за объект получается на выходе.

 exception_chars = '\\\/\|<>\?:"\*'
find_exceptions = re.compile('([{}])'.format(exception_chars))
Т.е. что делает compile я понимаю. А тут куча разных скобок и назначение каждых из них мне не особо понятно. Например, круглые (которые внутри кавычек) вообще можно убрать и вроде все так же работает.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version