Ответы пользователя по тегу Python
  • Как остановить все процессы?

    @rPman
    внутри бесконечного цикла нужно вставить проверку условия его завершения, например какая то переменная, значение которой изначально - false, а если она true то выход из цикла

    в данном случае те запросы что выполняются дойдут до конца но новые создаваться не будут
    Ответ написан
    Комментировать
  • Невозможно вносить изменения в Excel файл пока он открыт. Openpyxl. Python. Что можно сделать?

    @rPman
    перед открытием добавь в документ макрос (или пропиши его в шаблоны новых) который будет по какому то протоколу получать команды от твоей внешней программы и править документ.

    львиная доля кодинга тут именно средства коммуникации IPC

    p.s. может всю логику полностью в скрипты документа запихнуть? а не писать ее на питоне (хотя VBS тот еще язык)
    Ответ написан
    Комментировать
  • Как реализовать поиск похожих изображений?

    @rPman
    на картинке-запросе изображена девушка в юбке. Программа в этом случае должна выдать фотографии девушек в юбке
    очевидно что задача в поиске именно девушек в юбке или универсальнее?
    пример, как алгоритм должен понять что пользователь ищет девушек в юбке, а не столы, рядом с которыми стоит девушка?

    Гугли задачу - image annotation
    с помощью нейронных сетей (именно эта технология сейчас бурно развивается в разрезе работы с фото и изображениями)

    добавление в поисковую базу изображения должно начинаться с его анализа и получения списка тегов, объектов, которые нейронная сеть может на нем найти, и уже после ищешь по этим ключевым словам
    Ответ написан
  • Блочное выполнение кода?

    @rPman
    if else тут наиболее прямо к использованию
    как совет, чтобы по всему коду не было раскидано 100500 if-ов, есть возможность присвоить однократно при старте переменным нужные функции (тут как раз единственный if и будет) и при необходимости далее вызывать уже функции из этих переменных

    внутри же самой функции функционал разделять придется if-ами
    Ответ написан
  • Как поставить цикл while на паузу с помощью keyboard?

    @rPman
    дальнейшим воспроизведением
    постановка на паузу определяется тем что именно выполняется в цикле

    у вас два варианта - асинхронный, когда все происходит в одном потоке, в этом случае необходимы методы определения, нажата ли кнопка (помещена ли она в клавиатурный буфер) без остановки выполнения, к сожалению это не кроссплатформенно, т.е. для каждой ос свой метод, для примера вот чей то gist

    другой - многопоточный, в этом случае в одном потоке у вас висит ожидание нажатий клавиш, а в другом ваш главный цикл. этот вариант проще
    Ответ написан
    Комментировать
  • Как сделать, чтобы телеграм-бот реагировал на обращение к нему независимо с большой ли буквы к нему обращаются (python)?

    @rPman
    перед сравнением приведи строку к нижнему регистру, а список вариантов задай массивом и проверяй наличие с попомщью in
    if name.lower() in ["дядя","дедок","дедуля"]:
    ну и следи за кодировкой, если что делай decode
    Ответ написан
    1 комментарий
  • Как данные из одной таблицы sqlite3 передавать в другую?

    @rPman
    существует sql запрос insert or replace, который обновляет запись в указанной таблице по условию, но если условие выдает пустой список - создает запись

    Но я настоятельно рекомендую для упрощения кода исключить ситуацию, когда в обновляемой таблице нет нужных записей, в момент, когда в твоей базе появляется поддержка нового токена, добавлять в эту таблицу запись о нем с нулевым объемом. В этом случае хватит простого update mytable set amount=amount+? where cryptoname=?

    И еще, настоятельно рекомендую, для финансовых приложений, сохранять в виде записей в таблице любые операции над балансами, как машиночитаемый лог, сохранит тебе нервы и деньги в будущем
    Ответ написан
    Комментировать
  • Как определить значение X и Y по нажатию курсора на область графика?

    @rPman
    математика? график это график функции?

    Когда ты сам рисуешь график, ты должен реализовать формулу, которая из x и y=F(x) твоего графика вычислять screenX и screenY, т.е. координаты (чаще всего в пикселах) точек на экране

    соответственно обратный процесс, из клика по экрану, тебе нужно написать обратное преобразование

    если с X обычно все просто, пусть minx и maxx это минимальное и максимальное значения на графике для x, а график на экране рисуется с minScreenX до maxScreenX, то вычисление точки screenx = ((x-minx)*(maxScreenX-minScreenX)/(maxx-minx))+minScreenX
    точно так же считаешь screeny, только вместо x берешь y=f(x), miny, maxy и minScreenY, maxScreenY соответственно

    обратное преобразование для x проблем не составит, это школьный курс, но вот для y немного сложнее, если у f(x) можно аналитически вывести обратную функцию x=FF(y) то все просто, иначе, есть простой способ - сохранить в памяти в массиве все значения функции для каждой точки screenX на экране в виде ассоциативного массива ff[x]=[...] и использовать его вместо обратной функции
    Ответ написан
    Комментировать
  • Как боту vkbottle вывести топ 30 пользователей из sqlite3?

    @rPman
    используй ключевое слово limit .. offset ..

    осторожно, если mess у двух записей будет одинаковым, порядок сортировки для них будет не определен (в этом случае могу рекомендовать двойную сортировку по mess а потом например по id)
    Ответ написан
    Комментировать
  • Какую библиотеку использовать для работы с большими excel файлами?

    @rPman
    набейте морду тому кто выбрал такой отвратительный формат экспорта данных

    по теме, если файл формата .xslx, то это zip архив с текстовыми xml файлами, возможно их вам будет (например потоковыми парсерами) разобрать проще и быстрее.
    Ответ написан
    Комментировать
  • Как можно измерить расстояние поворота камеры?

    @rPman
    motion estemation или detection или deshaken (стабилизация видео), с помощью этих алгоритмов убирают тряску на видео, вычисляя для каждой точки на изображении вектор сдвига (он может быть разный, если объект на видео двигается)

    первый же запрос в гугл дает статью с примерами для питона на opencv (кстати это только один из способов, возможно тебе подойдет другой)

    вот статья про двухпроходную стабилизацию видео на основе ffmpeg, первый проход генерирует файл с векторами
    Ответ написан
    Комментировать
  • Как сделать выдачу случайного текста без повторений?

    @rPman
    каждый новый запуск

    тебе нужно сохранять информацию о вопросах, которые уже заданы так или иначе

    рекомендую вместо сохранения заданных вопросов, однократно при первом запуске создать список вопросов (номера) и перемешать его и уже его сохранять, выбирая и удаляя из него каждый раз первый элемент

    в питоне у random есть метод shuffle
    random.shuffle(mas)
    Ответ написан
    2 комментария
  • Как запустить код на библиотеке selenium_stealth без монитора?

    @rPman
    лучше понять как обнаруживает и противодействовать.

    а по вопросу, можно настроить xvfb, это полнофункциональный xserver работающий исключительно в оперативной памяти, там же можно настроить vnc сервер, и подключаться по необходимости.
    Ответ написан
    Комментировать
  • Как мне преобразовать строку вида \\uXXXX в строку, на пайтоне?

    @rPman
    Не понимаю, ты грузишь json файл по api а затем, вместо того чтобы разобрать его с помощью модуля json ты его предварительно вручную парсишь?

    \uXXXX это валидный токен строки json, так utf8 символы записываются (кстати уже давно это не обязательно, utf8 в стандарте но разработчики, в данном случае ozon, по непонятной логике продолжают пользоваться этим древним стандартом)
    Ответ написан
    3 комментария
  • Как я могу задействовать скрипт на python в мобильном приложении?

    @rPman
    у тебя 'мобильное приложение' на чем запускается?

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

    например через мобильный браузер.

    p.s. ты же хочешь вместо использования отличного модуля распознавания и синтеза, таскать с собой свой, низкокачественный
    Ответ написан
    Комментировать
  • Как ограничить максимальное количество обращений в секунду?

    @rPman
    У тебя же асинхронный код в одном процессе и даже в одном потоке, храни в памяти обычный мап - количество обращений в секунду и либо каждую новую секунду массив обнулять либо, более правильно, хранить рядом в fifo массиве последний список запросов (время+user_id), удаляя с каждым следующим запросом из головы записи старее секунды, соответственно вычитая из мапа user_id:количество значение, а при добавлении записи в голову соответственно количество увеличивать.
    Ответ написан
    Комментировать
  • Как проверить BTC транзакцию в Python?

    @rPman
    Установить кошелек с поддержкой api, например bitcoin-core (хранить блокчейн весь не обязательно, опция -prune позволяет указать сколько хранить на диске, минимум 512мб в реальности будет плюс примерно 5гб utxo) и делать к нему rpc запросы

    импортировать приватные ключи в него не обязательно, достаточно импортировать только сами адреса (тогда они будут только мониториться)
    в момент импорта адреса блокчейн будет пересканирован, это долго, можно указать чтобы не сканировал но тогда нужно чтобы на момент импорта адреса на нем не было транзакций (иначе они не будут учтены на балансе)

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

    если хочешь анализировать любые адреса, то нужно хранить весь блокчейн и в настройки добавить txindex=1 (по уму без этого в режиме prune тоже будет работать анализ но ты не сможешь понять, указанный хеш не существует в бклочейне в принципе или потому что он слишком старый и информация о нем удалена из твоей локальной копии)

    твои команды: importaddress gettransaction и т.п.

    p.s. можно использовать публичные сервера electrum (считай эксплорер чужой) разные сервера дают разные лимиты на глубину хранения транзакций и количество запросов
    Ответ написан
    2 комментария
  • Как открыть процесс exe фоном через пайтон?

    @rPman
    https://docs.microsoft.com/ru-ru/windows/uwp/launc...

    в принципе microsoft visual studio поддерживает питон и классы .net там же так что этот код наверняка можно будет адаптировать и под него
    Ответ написан
    Комментировать