Задать вопрос
Профиль пользователя заблокирован сроком с 1 апреля 2025 г. и навсегда по причине: подозрительная активность
  • Запись, получение, хранение текстовой информации в Python, как реализовать?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вам нужно многое понять и изучить прежде чем такая задача станет вам под силу. Судя по постановке вопроса вы очень далеки пока что от понимания основ алгоритмизации и структур данных.
    Конечно можно ставить любое уникальное значение любому объекту. Структура данных, которая это позволяет, называется map, а в питоне её реализует тип dict - это словарь, который ставит в соответствие любой объект любому уникальному другому объекту.
    Я уверен моего объяснения будет не достаточно вам. Почитайте любую книжку по питону с нуля, например, Марк Лутц пишет приемлемые.
    Ещё вам определенно понадобится какая-то БД, например sqlite, или что-то посерьёзнее, например postgres. Базы жанных - это тоже отдельный целый мир, но вам не нужно вних сильно углубляться, однако, одного вопроса, да и вообще вопросов будет недостаточно для нормального понимания.

    Я вам рекомендовал бы обратиться к фрилансерам за таким ботом, либо, если самому интересно, то читайте книжку по питону с нуля и там вам всё будет объяснено, что нужно для простого бота с вашей функциональностью.
    Ответ написан
    1 комментарий
  • Как сделать замену строки с записью рандомного числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут проще наверное не замену а генерацию нового html сделать.
    Ответ написан
    Комментировать
  • Почему csv writer не записывает все итерации, хотя должен?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Почему csv iterator не записывает все, хотя должен?

    Нет, не должен. Итератор не должен ничего записывать, он интератор. Итератор итерирует. Всё.

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

    Во-первых, вы не привели примера данных. Если что-то идёт не так, как ожидается, ВСЕГДА нужно приводить два набора данных: тот, который работает как ожидается и тот, который как ожидается не работает. При этом не обязательно приводить полные наборы данных, ведь их может оказаться очень много. Всегда нужно стараться упростить непонятную ситуацию максимально, и в какой-то момен она станет понятной. Ну, то есть, возможных причин проблемы в рассмотрении станет достаточно мало, чтобы понять какая из них действительна.
    В данном случае нужно было убирать из CSV всё лишнее до тех пор, пока проблема сохраняется. Если убирать уже нечего, то останутся только проблемные записи и, возможно, посмотрев на них, вы сразу всё поймёте. Или поймёт тот, к кому вы пришли с вопросом.

    query = """variables_loaded[variables_iterator]['0']""" ##, так далее

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

    При всех ваших ошибках в постановке вопроса нам тут уже не ясно, может быть у вас вообще нет работающего кода, который что-то записывет из CSV в БД, а то, что вы думаете он, якобы, запсывает, уже и так есть в БД, а вы просто этого не понимаете! Ну как не понимаете, что проблема может быть в SQL-запросе, поэтому его не приводите, как не понимаете, что проблема может быть в индексах и структуре БД, поэтому не приводите её структуры, как не понимаете, что проблема может быть в данных (они могут повторяься в разных строках CSV), а вы и не приводите все данные, и не говорите, что убедились, что они не повторяются!

    execute_query(connection, query)

    В-третьих, вы оставляете за скобками код выполнения SQL-запроса. Мы не знаем что это за код, может быть там вы тупо try-except'ом задавили все возможные ошибки и сами, фактически, отказались от того, чтобы БД вам объяснила в чем проблема. Может быть это вообе пустая функция внутри, или она неправильно обернута каким-нибудь декоратором, который ей не дает работать, а вы просто видите в БД одни и те же данные, и думаете. что они каждый раз туда заливаются вновь вот этим неработающим вообще кодом.

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

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала, проверка на вменяемость. Асинхронному боту для работы нужен рабочий цикл-реактор (event loop). Где и как ты его запускаешь, с учётом того, что Flask тоже требует рабочий цикл, а у тебя, вроде как, один поток?

    Я бы посоветовал использовать асинхронный веб-фреймворк. Например, доки на Flask упоминают Quart как максимально похожий, но изначально асинхронный фреймворк. Тебе всё ещё придётся разобраться, как параллельно запустить две длительные корутины (рабочий цикл Quart и рабочий цикл бота), но это уже решаемо. Вместо Quart можно использовать любой другой асинхронный веб-фреймворк.

    Альтернативно, можно запустить фласк и бота в разных потоках. Мешать асинхронность с многопоточностью - тоже та ещё идея, но если очень неохота уходить от Flask, то можно попробовать. Однако в этом случае нужно будет очень осторожно выполнять вызовы методов бота. В документации есть пример, как вызвать корутину в другом потоке ОС и дождаться ответа от неё.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы бот игнорировал ошибку, связанную с лс, и продолжал выполнять команду?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Как и всегда, исключение можно поймать и обработать, например, проигнорировать или выполнить какие-то альтернативные действия.

    try:
        await member.send("Привет!")
    except disnake.ext.commands.errors.CommandInvokeError:
        print(f"Написать {member} не удалось")


    Но вообще спамить в ЛС - это ненормальный сценарий использования Discord API, и за это бота могут заблокировать. Правильнее писать в каналы, для чего имело смысл с самого начала заложить в бота понятие "канал для уведомлений", чтобы все пользователи бота его заранее настроили на своих серверах.
    Ответ написан
    1 комментарий
  • Как организовать кеш картинок при такой архитектуре?

    Зачем вам кэш картинок
    У вас HDD ? камон братишка сейчас 2022 (почти23)
    в этом случае да большое количество даже маленьких картинок при параллельном чтение действительно просаживают вашу I-O тем самым вы замедляете работу своего сайта.
    НО сдается мне что у вас ssd а скорее всего Nvme ибо они стоят нынче как грязь под ноктями.
    Соответственно I-O диска немного ( тут используется сарказм) быстрее и не путайте пожалуйста скорость чтения со скоростью доступа ибо она еще больше чем просто скорость чтения и записи относительно HDD.
    Что вы собираетесь закешировать и какой эффект вы пытаетесь от этого получить ?
    Желательно с прфуами
    А я вам дам свой пруф.
    вы создаете в памяти раздел, закидываете туда весь сайт ( ну прям вот весь), мотнитуете его как диск.
    И замеряйте, быстрей чем весь сайт в памяти вы уже не получите.
    Итог будет я вам скажу печальный, разницы практически не будет от слова совсем ( кроме сжырания памяти).
    Все уткнется в генерацию дом. А там ахиллесова пята это mysql
    Ответ написан
    Комментировать
  • Aiogram как перейти на другой @dp message_handler()?

    Vindicar
    @Vindicar
    RTFM!
    Что у тебя за каша с вложенными обработчиками? Нет никаких гарантий, что это вообще будет работать.
    Научись пользоваться finite state machine.
    Ответ написан
    Комментировать
  • Как сделать свой собственный интернет для дома?

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

    Vindicar
    @Vindicar
    RTFM!
    split() разбивает по пробельным символам. У тебя в списке list_of_words будет 'Москва.', а не 'Москва' и '.'
    Ответ написан
    2 комментария
  • Асинохрон телебот возможен?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Асинохрон телебот возможен?

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

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Никак
    Ответ написан
    Комментировать
  • Выделяется ли память при использовании срезов в цикле в Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Причем тут цикл? Срез срезу рознь.
    При срезе списка выделяется по размеру среза, но если результат среза никуда не сохранён, то это короткоживущий объект и он будет освобождён быстро.
    Если речь о кортежах и строках, то они иммутабельны и тут вполне возможно не копировать данные, а ссылаться на сущетсвуюшие отрезки. Надо глянуть под капот в исходники, чтобы убедиться. Под любой новый объект так или иначе выделяется память, но в случае мутабельных сипсков срез гарантировано копируется.
    Ответ написан
    2 комментария
  • Ошибка при попытке забанить человека в беседе Telegram бота — Python (aiogram)?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Ошибка при попытке забанить человека в беседе Telegram бота — Python (aiogram)?

    Да, ошибка
    Ответ написан
    1 комментарий
  • Как исправить ошибку Selenium, возникающую на Mac?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Наверное прочитать текст ошибки и выполнить указания? Там же четко и конкретно написано в чем проблема и что надо сделать.
    Ответ написан
    3 комментария
  • Почему могут не сохраняться новые данные в базу postgre?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Забыл сделать commit.
    Ответ написан
    Комментировать
  • Что тут не так?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    У вас неверный синтаксис. Рекомендую изучить основы python, прежде чем продолжать заниматься ботописательством
    Ответ написан
    Комментировать
  • Как проверить, есть ли в строке слова из списка?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    if any(s in string for s in exclude_words):
        print("Строка содержит слова из списка")

    if set(string.split()) & set(exclude_words):
        print("Строка содержит слова из списка")
    Ответ написан
    1 комментарий
  • Как сделать свой собственный интернет для дома?

    @rPman
    Интернет не появляется из ниоткуда, он не растет на деревьях.
    Интернет - это буквально физическое подключение канала передачи данных в обе стороны.

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

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

    До прихода спутникового Интернета от Илона Маска, пинги будут почти секундными!

    p.s. Tсли тебе нужен интернет с маленькой буквы (без подключению к глобальному), то для этого достаточно две машины (или одна физическая и несколько виртуальных), чтобы соблюсти формальности, а по факту tcp/ip (на основе которого работает интернет) будет работать на loop back виртуальном устройстве в пределах одной машины (например localhost 127.0.0.1).
    Ты можешь настроить локальный веб сервер, локальный dns (в т.ч. /etc/hosts) и наслаждаться любыми именами веб сайтов в браузере.

    Будут некоторые проблемы с https но решаемые.
    Ответ написан
    2 комментария
  • Как сделать так чтоб в консоли кода можно было водить градусы?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Чем градусы отличаются от сантиметров, килограмм или, допустим, количества камней при вводе?

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

    Со вводом разобрались. Осталось интерпретировать переменную как градусы. Как к ней прибавить 45 градусов? Как к 2 яблокам прибавить 3 яблока и получить 5 яблок? Градусы с градусами можно складывать точно так же. Тупо прибавьте 45 к числу в переменной.

    Далее, у вас там есть вызов тригонометрической функции cos. Читайте справку: в каких единиах измерения функция принимает углы? В радианах. А у вас угол в градусах. Поэтому надо перевести градусы в радианы и результат уже передавать в cos. Как это сделать? Спросите у гугла - он вам формулу напишет прямо над результатами поиска. Пи, которое вам понадобится при переводе, уже есть в стандартной библиотеке.
    Ответ написан
    Комментировать
  • Как сократить код с подпрограмой?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Эти три функции идентичны, с точностью до переименования локальных переменных. Вы три раза написали одно и тоже. Можно 2 функции просто удалить и использовать отсавшуюся три раза.

    Ну какая разница, как у вас там переменная называется sA или sB - результат будет один и тот же.

    Да, может вы путаетесь, но аргумент в функции можно тоже переменовать. Хоть там и написано int masivA(int* a), этот a - это аргумент. Он никак не привязан к массиву a в main(). Туда можно передать и a и b и любой другой массив.
    Ответ написан
    4 комментария