Задать вопрос
Ответы пользователя по тегу Python
  • Как сделать так, чтобы не выходил из программы, пока не нажму Ente?

    @rPman
    Значит на машине не установлен python

    Окружений python несколько, как минимум свое идёт вместе с ide. Если ставить python с официального сайта, то окружение будет единое для всех приложений, рекомендую начать именно с этого варианта.
    Ответ написан
  • Получение ошибки при запросе на биржу?

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

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

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

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

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

    На python можно запустить любое приложение сокрытым, т.е. твое приложение запускает само себя с определенным ключом (и первый экземпляр завершает работу), чтобы исключить зацикливание, следующим образом:
    https://stackoverflow.com/questions/2319838/open-a...

    upd. погугли pythonw.exe и .pyw extention, такой тип приложений будет запускаться без консоли но как я понял это очень устаревший подход и может не поддерживаться.
    Ответ написан
    Комментировать
  • Надо ли что-то еще делать для избежания SQL инъекций?

    @rPman
    Конкретно для защиты от одной из многих атак - sql injection, да
    А еще нужно проверять на ошибки, проверять на валидность самих значений соответственно бизнес модели и состояний (например пользователь редактирует запись, указывая идентификатор связанной таблицы, так вот нужно проверить имеет ли он права в принципе указывать полученный id)
    Ответ написан
    4 комментария
  • Как запустить свой профиль firefox selenium?

    @rPman
    options.add_argument('-P имя_профиля');
    так же попробуй --profile путь_до_профиля

    профиль создать нужно заранее
    Ответ написан
    1 комментарий
  • Как создать скрипт, который заходит на сайт и нажимает на кнопку каждый час?

    @rPman
    Для тех кому очень сложно программировать но есть минимальное понимание этого можно использовать плагин tempermonkey который инжектит пользовательский скрипт на сайт по ссылке или ее маске, а там нужна пара строчка вида:
    document.querySelector('css selector').click(); // кликнуть на кнопку
    setTimeout(()=>window.close(),3000); // закрыть окно через 3000 миллисекунд

    css selector определяется тупым копированием (в большинстве случаев) из инспектора (правая кнопка на элементе, инспектировать, правая кнопка на элементе в инспекторе, копировать как...)

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

    @rPman
    Не очень эффективный путь но простой - запускаешь ssh xxx@yyy cat /path/log/file > temp_file ждешь окончания и читаешь полученный файл temp_file. тут cat это программа на сервере, выводит в stdout содержимое файла, но можно прямо на сервере часть обработки запускать используя grep/sed/awk/..

    сложнее, берешь какой-нибудь модуль для работы с ssh или scp для python, я не пробовал но гуглится много, например, и работаешь с выводом ssh напрямую.

    Так же можно попробовать вызывая subprocess подключаться к потокам и обрабатывать вывод, не сохраняя (я так делал на php, есть подводные камни на windows машинах, если не wsl), вроде гуглится что не всегда все работает как хочется, но если просто подключиться и об
    Ответ написан
    Комментировать
  • Почему скрипт не понимает, что данные в MySql изменились?

    @rPman
    код, который обновляет данные случайно не начал транзакцию и не завершил ее?
    Ответ написан
  • Парсер OZON выдает пустой список в таблицу Excel, в чем проблема кода?

    @rPman
    Проверь, что тебе вернул BeautifulSoup, есть ли в его ответе нужные div и a.
    Вполне возможно что наименования классов изменились, или в ответе нет в принципе товаров, например стоит защита от таких парсеров либо код html формируется в браузере скриптом а не на сервере и т.п.

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

    @rPman
    Боюсь ты не найдешь готовых решений
    Мало того, тут нужно искать размеченный датасет голов людей и радоваться этому богатству

    Решение для тебя - берешь несколько сотен тысяч видео (разные времена года), нанимаешь десяток человек в помощники и садишься размечать, затем берешь готовые решения по нейронкам, арендуешь на недельку себе кластер с gpu или на месяц другой игровую видеокарту и вперед с примерами от pytorch пилишь результат.

    Теперь советы - прежде чем работать с нейронкой, попробуй другие решения, например благодаря тому что видеокамеры у тебя не двигаются, ты можешь получать объекты через разницу дефолтной картинки и текущей (так же можно просто считать по каждому пикселу гистограмму частоты значения интенсивности во времени (лучше брать HSV а не RGB) и вычитать из текущего изображения те цвета, что дольше всего на видео (осторожно в час пик магазин может часами быть битком забитый), добавляешь сюда алгоритмы локального детекта движений (строится карта векторов по всему изображению), т.е. ты можешь с высокой точностью детектировать кусок кадра на основе видео (несколько соседних кадров) который однозначно можно считать человеком (или несколькими), и вот уже вырезая их ты можешь начинать разметку видео для нейронки

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

    @rPman
    даже steam remote? который заточен на трансляцию именно игр.

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

    @rPman
    Аналог linux-овму fusefs, но для windows - winfsp.dev
    Но он на c++!

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

    @rPman
    если шансы выбора файла одинаковые и ты можешь переименовывать файлы, сделай имена файлов - числами
    тогда код станет совсем простым
    num=random.randint(1,10) # от 1 до 10 включительно
    filename=str(num)+'.png' # просто пример имени файла 1.png
    Ответ написан
    Комментировать
  • Как запустить выполнение асинхронной функции с определенной частотой выполнения?

    @rPman
    await asyncio.sleep(1.0 / MESSAGE_REPLY_RATE)
    нужно добавлять в тело цикла, после tasks.append(task), добавив await

    тебе ведь нужно не создавать новые task чаще чем указанная частота, вот и создавай их с интервалом.
    Ответ написан
  • Как с помощью Python записать "внутренний" звук компьютера?

    @rPman
    На windows в устройствах должно присутствовать что то типа StereoMix (панель управления - звуки - запись). В этом случае его можно выбрать вручную как устройство по умолчанию, либо средствами pyaudio выбирать как источник звука.

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

    @rPman
    вот что ответил ChatGPT с переводом от deepl
    Этот код считывает входные данные из стандартного потока ввода (stdin) и перебирает каждую строку с помощью цикла for. Для каждой строки он делает следующее:

    Используется метод strip() для удаления из строки пробельных символов, идущих впереди или позади.
    С помощью метода capitalize() первая буква строки пишется заглавной, а остальные буквы делаются строчными.
    Используется f-строка для форматирования строки в строку, заключенную в двойные кавычки и сопровождаемую символом новой строки.
    Полученная строка печатается в стандартный поток вывода.

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

    привет мир
    как дела

    Выходные данные будут такими:
    "Привет мир\n"
    "Как дела\n"
    Ответ написан
    Комментировать
  • Как спарсить информацию с динамического сайта на python/js?

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

    запускай полноценный браузер, симулируй клики пользователя, способов миллион, от инжекта javascript на страницу нормально запущенного браузера и прередачи информации через http до полноценных библиотек типа selenium
    Ответ написан
    6 комментариев
  • Вопрос про многопоточность python, что лучше, больше ОЗУ или больше ядер?

    @rPman
    На сколько мне известно, популярные библиотеки telegram - асинхронные, т.е. многопоточность в них используется только для реализации асинхронности обработки соединений на уровне питона, а значит вероятность того что твой код упрется в потолок производительности ядер по ним практически нулевая, даже тупой сетевой hello world на питоне оказывается неожиданно очень медленным.

    Т.е. скорее всего тебе хватит двух ядер даже в худшем случае.

    p.s. оперативная память - это то что любит питон, будет жрать как не в себя, поэтому если это прямо сейчас надо решать - бери больше оперативной памяти

    Но правильно - брать больше ресурсов именно в тот момент, когда это действительно нужно, а стартовую оценку нужно брать с тестов своего кода на основе текущего размера своей аудитории и их активности.

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

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

    @rPman
    Не уверен что данный код можно как то ускорить
    Например можно сменить python на nuitka и компилировать бинарник из получаемого им c++ кода, вот такие простые вещи там однозначно могут быть быстрее, особенно если вручную ковырять
    Как частный случая - написать критичный кусок кода на c++/c и вызывать его из питона, но сразу скажу что если по тупому заменить этот кусок на код си, никакого ускорения не получится, может даже ухудшение.

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

    Поясни главную задачу, зачем у тебя исходный массив в виде двумерного числового, когда к примеру подошел какой-нибудь битмап (не уверен что это было бы быстрее но попробовать)? Почему надо генерировать итоговый массив таким? куда пойдут эти 3 числа, это описания RGB colors? а потом они все будут инициализироваться?
    Ответ написан
    Комментировать