Задать вопрос
  • Можно ли обработать фото в дискорд боте на python?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Можно
    Ответ написан
    Комментировать
  • Как удалить дубликаты из списка?

    @dmshar
    То, что вы написали - некоторые данные в фигурных скобках - согласно синтаксису Python не есть список. Это множество. Множество - это такая структура, которая не допускает повторяющихся элементов внутри себя. Т.е. присвоив эту строку некой переменной, ей автоматом будет приписан тип "set" и при выполнении этой операции все повторяющиеся элементы будут автоматом удалены.
    Вот пример
    slt={'threads/4862302', 'threads/4862302', 'threads/4862302/'}
    print (slt)

    и результат
    {'threads/4862302/', 'threads/4862302'}

    Если вдруг вы считаете, что 'threads/4862302/' и 'threads/4862302' - это один и тот-же элемент, то вам надо предварительно просто поудалять символы '/' из строк, например - вот так:
    slt={'threads/4862302', 'threads/4862302', 'threads/4862302/', 'threads/4862303/','threads/4862304/'}
    sa=set()
    for x in slt:
        if x[-1]=='/':
            x=x[:-1]
        sa.add(x)
    print (sa)

    и результат:
    {'threads/4862304', 'threads/4862303', 'threads/4862302'}
    Ответ написан
    Комментировать
  • Как на Python3.10 на хостинге Ubuntu импортировать модули?

    Vindicar
    @Vindicar
    RTFM!
    А) Найди pip от питона 3.10 и запусти его явно. Например, командой pip3.10.
    Б) Используй виртуальное окружение, и ставь пакеты в него. Только убедись, что используешь правильный питон для создания venv.
    Ответ написан
    Комментировать
  • В docker desktop все работает, на хосте, который хранит все в контейнерах - нет, что делать?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Докер тут вообще не при чëм, просто авито блокирует ip-адреса хостингов, чтобы защититься от парсинга.
    Ответ написан
    Комментировать
  • Какой сетап лучше для ДК?

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

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

    p.s. это нормально, для Домашнего Кинотеатра 150 ватт на канал?
    Ответ написан
    Комментировать
  • Мне нужна версия python, какая?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    • Открываете pypi (сайт с описанием библиотек для python)
    • ищите-там необходимые библиотеки
    • Смотрите версию в колонке "Классификаторы" (в некоторых случаях доступные версии дублируются в специальной плашке в начале "описания")
    • Выбираете самую высокую из тех, с которой работают все.
    Ответ написан
    Комментировать
  • Мне нужна версия python, какая?

    @igor6130
    Зачем угадывать. Зайдите на страницы этих библиотек в интернете и узнайте минимальную версию Питона в описании.
    Ответ написан
    2 комментария
  • Как задать свой тип?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Создайте его
    https://www.postgresql.org/docs/current/sql-create...
    используйте
    CREATE TYPE contenttype AS ENUM ('FILM', 'SERIAL', 'TRAILER');


    https://www.postgresql.org/docs/current/datatype-e...
    Ответ написан
    Комментировать
  • Как циклом Python for пройти несколько (сотен) range?

    Vindicar
    @Vindicar
    RTFM!
    Ответ написан
    Комментировать
  • Как называются "\n","\r","\t"... в строках?

    paran0id
    @paran0id
    Умный, но ленивый
    В общем случае - escape sequences, управляющие последовательности по-нашему.
    Ответ написан
    Комментировать
  • Как избавиться от ошибки role required argument?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Как избавиться от ошибки role required argument?

    Научиться пользоваться переводчиком
    Ответ написан
    Комментировать
  • Как добавить Dockerfile в существующий .tar архив с помощью python tarfile?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    Для добавления файла Dockerfile в существующий .tar архив с помощью модуля tarfile в Python можно использовать следующий код:

    import tarfile
    
    # Открываем существующий .tar архив в режиме добавления файлов
    with tarfile.open('existing_archive.tar', mode='a') as tar:
      # Добавляем файл Dockerfile в архив
      tar.add('Dockerfile')

    Также можно указать имя, под которым будет сохранен файл в архиве, используя аргумент arcname:

    import tarfile
    
    with tarfile.open('existing_archive.tar', mode='a') as tar:
      tar.add('Dockerfile', arcname='custom_name.txt')

    Обратите внимание, что указанный код открывает архив в режиме добавления файлов (mode='a'). Если вы хотите открыть архив в режиме чтения (mode='r'), то не сможете добавить файлы в него. Также существует режим создания нового архива (mode='w'), который перезапишет существующий файл, если такой будет существовать.
    Ответ написан
    Комментировать
  • Как корректно добавить текст в PDF файл?

    @Don_Sudak Автор вопроса
    Благодаря Adamos нашёл свою ошибку
    Текст просто сливался с фоном
    В моём случае достаточно просто
    shape.insert_textbox(
        rect,
        text,
        fontname = "helv",
        fontsize = 25,
        rotate = 0,
        color = (1 ,1, 1),
    )
    Ответ написан
    Комментировать
  • Как правильно проверить на Null\NaT поле фраймворка pandas и записать его в базу postgres?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    В pandas можно использовать функцию isnull для проверки поля на наличие значения NaN (Not a Number) или NaT (Not a Time). Например, чтобы проверить поле update_dt на наличие значения NaT, можно использовать следующий код:
    df['update_dt'].isnull()
    Этот код вернет булевый сериес, где True указывает на то, что в соответствующей ячейке поля update_dt стоит значение NaT, а False - значение присутствует.

    Чтобы записать эти данные в базу данных, можно использовать конструкцию INSERT INTO ... SELECT ... FROM с вложенным запросом. Вот пример такого запроса, который записывает в таблицу table_name все записи из df, где поле update_dt не равно NaT:
    INSERT INTO table_name (column1, column2, ..., update_dt)
    SELECT column1, column2, ..., update_dt
    FROM df
    WHERE df['update_dt'].isnull() = False
    Ответ написан
    Комментировать
  • Запись, получение, хранение текстовой информации в 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 комментарий