Ответы пользователя по тегу Python
  • Как хранить большое количество фото и видео?

    @rPman
    да
    просто работа с файлами достаточно гибкая, могут возникнуть проблемы если со связью до серверов хранения будут нестабильности (смонтированная шара будет подвисать) и по этой причине многие вместо работы с файлами работают по http, расшарив файлы любым внутренним веб сервером как статику.
    php-шникам удобно,
    все файловые методы работают через прослойку, поддерживается http и ftp протокол, можно регистрировать свои (тот же s3 так делает), это значит масштабирование хранения в файлах может пройти практически без правки кода
    Ответ написан
    Комментировать
  • AIOGRAM Как скачать фото от пользователя и дать фото уникальный id?

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

    достоинством будет - одинаковые файлы не будут дублироваться в твоем хранилище
    Ответ написан
    Комментировать
  • Как сделать из int str?

    @rPman
    Вот этот список/таблица в которой номеру соответствует строка-описание называется справочник
    У тебя 2 основных подхода, хранить эту таблицу в базе данных (особенно если приложение должно уметь его редактировать) либо хранить его на клиенте и подставлять в программе

    Про хранение на клиенте тебе уже подсказали

    Про хранение в базе данных - либо ты создаешь буквально таблицу-справочник, либо про создании таблицы (твоя profile) определить не числовое поле а enum со строковыми описаниями (подходит для очень небольшого количества записей)

    При использовании таблицы-справочника sql запрос будет примерно таким
    select ... from profile p left join admin_cls a on p.admin=a.id
    Ответ написан
    Комментировать
  • Как создать виртуальный дисплей?

    @rPman
    питон тут однозначно не подойдет

    для windows:
    Без использования драйверов фейкового монитора, но при наличии физических выходов на видеокарте, можно к ним подключить заглушку (она дешевая, разная для каждого типа разъемов, гуглить эмулятор заглушка терминатор монитора dsub/hdmi/dp), благодаря которой система будет считать что монитор подключен, и уже средствами ОС работать с этим монитором (само собой чтобы самому видеть содержимое придется поставить какой-нибудь vnc с поддержкой мультимониторной конфигурации)

    Есть бесплатный враппер (это не кряк а утилита использующая штатный win api), которая превращает рабочие ревизии windows в сервер терминалов (позволяет подключиться mstsc одновременно несколько сессий а не только одну), фокус к сожалению будет убегать но можно сделать каскадные подключения

    Есть ibik aster, платная утилита, позволяющая из одного компьютера с несколькими мониторами, клавиатурами, мышками полноценные рабочие места на не серверных ревизиях windows, т.е. в совокупности с заглушкой из машины можно сделать несколько рабочих мест, на каждом запускать приложение и каждое рабочее место будет иметь свой фокус, т.е. приложения будут одновременно активны.

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

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

    так же можно установить несколько xserver, работающих в оперативной памяти - vfb, это будут полноценные рабочие места, работающие исключительно в оперативной памяти (подключение например по vnc)

    и есть xephyr, версия xserver, работающая внутри окна (т.е. буквально выбираешь любое окно, хоть фейковое и говоришь - заменить изображение окна полноценным xserver, мышка и клавиатура будут общими но можно настроить (так делают multiseat на одной видеокарте с несколькими видеовыходами)
    Ответ написан
    Комментировать
  • Как исправить ошибку Non-UTF-8?

    @rPman
    кодировку файла с исходным текстом смени на utf-8
    Ответ написан
  • Как остановить все процессы?

    @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 комментария