А вместо своего "хитрого" скрипта какой-нибудь print('Hello, World!') не пробовали ставить?
И зачем имя выходного файла с датой формировать средствами командного процессора, лучше бы на питоне тоже.
Ой... зачем тренарный оператор? эквивалентно просто написать
message_is_command = re.match(...) is not None
А если надо не запоминать, а только проверить в условии, то достаточно и
message_is_command = re.match(...)
Осваивайте длальше питон, чисто для интереса, показываю, что возвращают ваши выражения, может, это покажется Вам неожиданным :)
>>>chet and nechet
[1, 3, 5, 7, 0]
>>>3 in chet and nechet
False
>>>2 in chet and nechet
[1, 3, 5, 7, 0]
Вопрос, а зачем С++ ? Скорость системы, скорее всего, будет ограничена откликом исследуемых сайтов.
Если придется вообще работать с браузером, чтобы получить документ после исполнения js, то еще и браузер будет тормозить.
А код на плюсах будет и сложнее, и объемнее.
Во-первых, согласен с предыдущим ответом.
Во-вторых, не ставьте просто распечатку строки исключения, если вообще не ловить сначала, то в распечатке стека исключения будет видно, из какой строки кода это вылетело, и не придется вчитываться в весь текст функции.
В-третьих, общее except Exception as err: вообще используется только на самом верхнем уровне программы (потока), чтобы диагностировать, от чего все помёрло, и, кстати, все равно распечатать стек исключения. В локальных кусочках проверяют что-то конкретное, например открыли базу SQL - проверили исключение на доступность базы.
Не используйте оператор new при программировании на C++ :) ну почти никогда... Если нет ограничений на использование std::vector, и прочих контейнеров стандартной библиотеки - используйте. Примечание: часто std::vector это, хоть и самое простое, но не то, что нужно, там надо смотреть на дальнейшие требования к задаче (сортировка, поиск по ключу и пр.).
Название функции setSettings как-то подозрительно напоминает конструктор! Тогда у Вас вполне нормальная ситуация - конструкторы действительно у семейства наследников бывают разные. Посмотрите примеры по словам "C++ виртуальный конструктор".
Пробл. в том, что точка (как правильно отметил В.И. Ленин) часто не явл. разделителем предложения. И (иногда!) восклицательный знак тоже.
Обязательно надо проверять регистр буквы после точки. А также длинный список не опредляющих предложение слов перед точкой, инициалы (не обязательно однобуквенные - Дж. Вашингтон), типичные сокращения - г. Москва.
Станислав Макаров: Кажется, именно std::vector был изначально последовательным хранилищем, но использовать там надо &a[0], а вот data() используем при работе с std::sring и там действительно сначала последовательность не гарантировалась.