Задать вопрос
  • Как указать модификатор S в re.sub python?

    Maksim_64
    @Maksim_64
    Data Analyst
    показал, бы что именно не сработало, ошибка или нет желаемого результата.

    Напрмер,
    re.findall(pattern, string, flags=0)

    re.sub(pattern, repl, string, count=0, flags=0)

    В первом случае ты указываешь именованный параметр flags, как позиционный, и он оказывается на правильной позиции, во втором случае его позиция на два больше. То есть при вызове метода sub нужно указывать flags как именованный парметр.
    Ответ написан
    1 комментарий
  • Как написать скрипт на питоне который будет присылать сообщение в телеграм бот об включении, выключении компьютера, неудачной попытки входа в учетку?

    @rPman
    У тебя следующие задачи, которые решать придется по разному:
    * детектирование включения машины
    решается простой фиктивной службой systemd startup
    * детектирование выключения машины
    можно конечно тоже службой shutdown, но будут события только корректных выключений, а принудительные перезагрузки резетом или например ctrl+alt+shift+pause .. r (которая работает даже если модули ядра повиснут), не отловит.
    Тут можно поставить скрипт, анализирующий работу машины на соседнюю в сети, вариантов тьма.
    * попытки входа в систему
    В общем случае это в /var/log/auth.log там будет все, и использование sudo/su, и запуск процессов cron и служб (с указанием пользователя) и ssh подключения и тьма тьмущая всего что так или иначе затрагивает авторизацию, что и является 'вход в систему', там же можно посмотреть что пишет lightdm на попытки входа в gui

    Мониторить попытки входа придется скриптом, периодически читающим файл (осторожно tail -f /var/log/auth.log | my_script не отследит ротацию логов, поэтому лучше самому следить за датой последнего изменения файла и читать его с позиции, на которой остановился в прошлый раз ну или с нуля)
    upd. век живи век учись, ключ tail -F корректно будет работать с ротацией логов

    Если делать 'по феншую', то лучше работать с подсистемой сбора событий, в python с помощью python-systemd - journal например фильтруя по _SYSTEMD_UNIT=sshd.service и _COMM=sshd (сам я не делал, посмотрел что можно и в памяти отложил, сейчас ИИ спросил, да где то так и надо)

    * отправка сообщений в telegram
    можно конечно использовать какую-нибудь библиотеку, многословно, красиво... а можно отправить один http запрос по api telegram, кода минимум, наверное все так в своих скриптах делают
    https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=Hello%20World
    Ответ написан
    5 комментариев
  • Как можно ускорить выполнение этого кода?

    ZERGeich
    @ZERGeich
    Совет на будущее: насчёт идеальности кода - это ваше оценочное суждение и не надо его вставлять в вопрос, если вы хотите получить хоть какой-то дельный ответ.

    from collections import Counter
    задание = "АРОКСИЛИРОВАНИЕ".lower()
    длина = 7
    
    counter_задание = Counter(задание)
    
    with open('D:\\Program Files\\Text\\слова\\1.txt', 'r') as f:
        filtered_words = (word.strip() for word in f if длина <= len(word.strip()) <= len(задание))
        результат = [word for word in filtered_words if Counter(word) <= counter_задание]
    Ответ написан
    5 комментариев
  • Как правильно вывести результат регулярного выражения в Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Так если ищем паттерн в твоем случае (букву, для поиска буквы регулярка не нужна) в строке, почему match? Замени re.match на re.search, код отработает, но тут опять таки, если он ничего не найдет, то также будет none, добавь условие какое нибудь, например.

    import re
    a = 'samsung'
    b = re.search(r'u', a)
    if b:
        print(b)
        print(b.start())
        print(b.end())
    else:
        print('Паттерн не найден')
    Ответ написан
    7 комментариев
  • Сборка python файла с расширением pyw в exe файл??

    @Drno
    слишком длинный путь к файлу - ограничение обычно 255 символов
    а вообще - надо размещать проекты без кирилицы в путях, без пробелов и называть на англицком
    Ответ написан
    6 комментариев
OSZAR »