• Можно ли отследить заходил ли человек в определённую папку?

    @rPman
    Понятие вошёл в папку расплывчатое, я ещё не спросил про ОС, а ведь есть куча приложений, позволяющих 'лазить по папкам'

    Есть простой но не красивый способ, в windows файловая система ntfs позволяет сохранять у файлов и папок время последнего их чтения (есть соответствующий ключ в реестре, рекомендуют отключать, чтобы система не тратила на это ресурсы диска, по умолчанию включено)
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] value name NtfsDisableLastAccessUpdate to DWORD значение 0 или 1

    и.е. из питона можешь периодически опрашивать время последнего доступа к каталогу и при его изменении реагировать.
    os.path.getatime(path)


    Это время меняется на любой доступ к файлу или каталогу, включая к примеру поиск или индексирование
    Ответ написан
    Комментировать
  • Может ли нейросеть писать код?

    Вопрос скорее философский и больше имеет отношение к языкам программирования, нежели к нейросетям.

    Начнём с самого начала. Как будет звучать постановка задачи для нейросети?
    Например: напиши 10 раз строку "hello world" с паузой в 1 сек между ними.
    Окей, с этим нейросеть вполне справится. На Ruby получится что-то типа:

    10.times { puts 'hello world'; sleep(1) }

    Но постойте, ведь это почти тоже самое, что мы написали на человеческом языке!
    Тут появляется второй вопрос — какой должен быть уровень детализации задачи, чтобы уровень детализации кода соответствовал ему?

    И тут мы, немного подумав, понимает, что языки программирования — это и есть та самая нейросеть — интерпретатор или компилятор как мостик между человеческим описанием задачи и его машинной реализацией.

    Усложняем задачу. Человек говорит нейросети: хочу игру с шариком, который скачет по экрану, отскакивает от стен, разбивает стену из кирпичей, а пользователь управляет доской и отбивает его.

    Понятно, что человек сразу представляет в уме игру Арканоид. Но у нейросети нет такого опыта! Тут начинается погружение в детали. С какой скоростью мяч летает? Пропадает ли мяч, если его не отбить доской? А даётся ли втрой шанс? А третий? А что если все кирпичи буду разбиты?

    Всё программирование состоит из тысяч мелких вопросов-требований, о которых мы даже не задумываемся, когда пишем код. А нейросеть как должна обо всём этом узнать? И опять мы приходим к тому, что достигнув максимального уровня детализации требований, получится, что мы написали программу на естественном языке и её уже не составит труда перевести в машинный. А если столько работы уже проделано, так почему бы человеку самому не закодировать эту задачу сразу на языке программирования?
    Ответ написан
    8 комментариев
  • Почему прерывается работа бота?

    Это проблема на стороне библиотеки telebot'а. Выхода тут два:

    1) Ставишь запуск программы с помощью systemd утилиты. В ней в настройке [service] укажи Restart=on-failure. В этом случае если скрипт завершится, то systemd его перезапустит. Ну или поставь перезапуск каждые 30-60 минут.

    2) Переходишь и переписываешь на aiogram. В 2015-2017 годах, возможно, либа telebot была актуальна, но прогресс не стоит на месте. А telebot, увы, стоит. Кривая реализация поллинга, проблемный next_step_handler, медленная поддержка новых версий Bot API и т.д.

    Аргументы для перехода на aiogram:

    1. это полноценный фреймворк, т.е. позволяет сделать больше полезных вещей;
    2. асинхронный, что делает его быстрее в некоторых задачах;
    3. поддерживается Python 3.7+ и выше, что сподвигнет обновить свой старенький интерпретатор и использовать новые возможности языка;
    4. множество встроенных «помощников» (синтаксический «сахар»), улучшающих читабельность кода;
    5. оперативные обновления (поддержка новых опросов появилась в тот же день, что и в самом Bot API);
    6. русскоязычный чат поддержки и обсуждений, где сидит, в том числе, и сам разработчик фреймворка;
    7. мой любимый пункт: нормально работающий поллинг.


    (https://mastergroosha.github.io/telegram-tutorial/...

    Лично я выбрал второй путь.
    Ответ написан
    2 комментария
  • Как у бота в телеграмме убрать автоматический ответ на сообщение?

    @Oxblad
    Можете вызывать клавиатуру когда человек напишет /start
    Но изначально сделать клавиатуру нельзя

    Если вы хотите чтобы бот не отвечал на каждое сообщение
    установите команду
    @test_bot.message_handler(commands= ['test'])
    Ответ написан
    Комментировать