Задать вопрос
  • Как ввести несколько строк в стандартный ввод python?

    Vindicar
    @Vindicar
    RTFM!
    Стандартный ввод - это файл, и его технически можно "прочитать до конца". Пример:
    import sys
    for line in sys.stdin:
        print('Got', repr(line))
    print('Done')

    Запусти как обычно, введи несколько строк, а потом в терминале (если под виндой) нажми Ctrl-Z, затем Enter.
    Это пошлёт сигнал "конец файла", и дальнейшие попытки ввода через input() будут не успешными.

    Также можешь записать строки в текстовик, и запустить файл с перенаправлением ввода:
    python3 main.py < data.txt
    Тогда скрипт тоже получит сигнал о конце ввода, когда файл закончится.
    Ответ написан
    1 комментарий
  • Почему при запросе фотокарточки из БД с помощью телеграмм-бота возникает ошибка?

    @Everything_is_bad
    peck69 просит вас как эксперта ответить на вопрос
    тебе еще вчера же ответили, используй FSInputFile, а не InputFile, даже в доки потыкали.
    Ответ написан
    Комментировать
  • Где найти гайд по deeplink aiogram3?

    lk13s
    @lk13s
    Ответ написан
    Комментировать
  • Как останавливать зависящие контейнеры от контейнера базы данных, если бд остановится/крашнится?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Поле depends_on определяет только последовательность запуска и удаления сервисов, к остановке отношения не имеет.
    Искомое вами поведение задаётся через healthcheck проверки доступности базы в backend и бэкенда во frontend... или простой docker compose -f путь/до/docker-compose.yaml stop, т.е. просто остановить все сервисы.
    Ответ написан
    Комментировать
  • Как пололучить int8 из байта?

    @rPman
    пакет struct метод unpack
    data=b'\xc8'
    struct.unpack('b', data)[0]

    data типа bytes, можно считывать из файла, открывая как бинарный файл, флаги 'rb'
    Ответ написан
    1 комментарий
  • Как можно ограничить скорость интернета для каждого клиента отдельно в openvpn?

    Ziptar
    @Ziptar
    Мимокрокодил широкого профиля, иногда мимопролетал
    HTB очереди
    Ответ написан
    9 комментариев
  • Как написать тг бот-секундомер на питоне?

    Vindicar
    @Vindicar
    RTFM!
    В коде дикая каша - или у тебя отступы уехали чёрт знает куда. Такое не заработает.
    Начни с официальных примеров, найди среди них наиболее похожий - скажем, вот этот таймер. Разберись, как он устроен, и потихоньку модифицируй.
    Разумеется, предполагается, что ты хотя бы насколько-то знаешь питон. Если это не так - откладываешь бота и учишь язык.
    Ответ написан
    Комментировать
  • Как сделать инсталлятор mongoDB и собственного приложения одновременно?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    RTFM - MongoDB Manual / Installation / Community Edition / Install on Windows: https://www.mongodb.com/docs/manual/tutorial/insta...
    Ответ написан
    Комментировать
  • Не настраиваются разные уровни логирования в python logging?

    Vindicar
    @Vindicar
    RTFM!
    Ты задал уровень WARNING для самого логгера (не для хэндлеров), поэтому он INFO отбрасывает сходу. До хэндлеров ничего не доходит просто.
    Я бы использовал эту либу немного по-другому (пример с её гитхаба)
    t_handler = tg_logger.TgLoggerHandler(users=[...], token=TELEGRAM_TOKEN)
    t_handler.setLevel(logging.WARNING)
    logger.addHandler(t_handler)

    Так куда более похоже на обычные лог-хэндлеры, проще управлять и читать даже если с либой мало знаком.
    Ну или если очень хочется setup(), то так:
    t_handler = tg_logger.setup(logger, token=token, users=users, tg_format="<b><u>%(name)s</u> : %(levelname)s</b>\n\n<code>%(message)s</code>")
    t_handler.setLevel(logging.WARNING)


    Так что логгеру задай уровень подетальнее, INFO или даже DEBUG, а тонкую настройку делай на уровне хэндлеров.
    Ответ написан
    2 комментария
  • Почему datetime.fromtimestamp приводит UTC в локальный naive?

    @Everything_is_bad
    Ну почему сначала не почитать доки, а не бежать сюда, там же явно пишут что "return the local date" https://docs.python.org/3/library/datetime.html#da... и там же явно пишут что есть utcfromtimestamp
    Ответ написан
    2 комментария
  • Qrencode, как сгенерировать qr код на каждую новую строку?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    while read p; do
      qrencode "$p"
    done <file.txt
    Ответ написан
    2 комментария
  • Можно ли установить личность?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Можно ли установить личность?

    Можно, зависит от вычисляющего, его доступов/используемого ПО и политики безопасности компании. Подключаясь к вашей рабочей точке, смартфон сообщает: а) имя устройства; б) MAC-адрес модуля Wi-Fi. При других сценариях, можно анализировать трафик и выцеплять из него интересующую информацию. В совокупности этого будет достаточно для идентификации.

    Бесконтрольное подключение личных девайсов к рабочим сетям есть плохая практика.
    Ответ написан
    Комментировать
  • Настройка 2FA ADFS в NEXTCLOUD?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    А настроили ли вы на стороне ADFS передачу утверждения (claim) о членстве в группе , по которой вы фильтруете пользователей?
    Пример настройки утверждения членства в группе есть в документации AD FS.

    PS Имя группы на скриншоте ищите сами: я его вижу, но мне его руками набивать лень, а скопировать-вставить со скриншота нельзя. Надеюсь это вас убедит в следующий раз вставлять информацию по вопросу текстом.
    Ответ написан
    2 комментария
  • У меня ошибка TypeError: 'list' object is not callable Что делать?

    Vindicar
    @Vindicar
    RTFM!
    Всё перепробовал, а прочитать внимательно - не пробовал.
    Почему ты вообще трогаешь message_handlers, это не декоратор, а список установленных обработчиков. Даже по названию можно догадаться - handlers во множественном числе.
    Тебе нужен message_handler.
    Смотри официальные примеры.
    Ответ написан
    Комментировать
  • Видит ли провайдер к какому порту сервера я подключаюсь при использовании протокола SSH?

    CityCat4
    @CityCat4 Куратор тега VPN
    Дома с переломом ноги
    Может и увидит и что из этого? Провайдеру насрать на твой трафик, вся нужная инфа уже сама слилась в СОРМ. А если надо - придут, вежливо ввынесут дверь и спросят :)
    Ответ написан
    Комментировать
  • Синхронизация двух директорий через ssh?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    Мне постоянно советуют rsync

    Неужели такая странная хотелка, что нет готового решения?

    Так тебе и советуют готовое отличное решение.

    , но это же просто продвинутая замена scp. Там даже для обратной синхронизации надо его запускать второй раз с другим направлением.

    Нет, это не замена scp. То, что используется тот же протокол не значит что работает одинаково. rsync умеет обновлять файлы частично, экономит трафик.

    Вот пишу я какой-то код на ноуте. А запускаю на сервере. Как мне самым простым способом синхронизировать две директории — локальную и серверную?

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

    В твоих требованиях противоречия.
    То тебе нужно, чтоыб какие-то файлы не синкались. То есть уже нужно поддерживать список исключений и возможно настраивать его на каждом сервере.
    Потом у тебя день поработать на каком-то сервере, а завтра на другом. То есть ситуация, когда у тебя 5-10 серверов и ноут будут синкаться друг с другом?
    Потом ты хочешь "готовое решения", но не хочешь ставить его на каждый сервер/ноут и настраивать. Ну вот есть какой-нить unison, который синкает в обе стороны за один запуск, но его нужно будет и ставить и настраивать как и synthing, который ты не хочешь ставить или настраивать.

    Я бы не парился, а просто юзал приватный git репозиторий, который легко поставить везде. И в гите не обязательно сотни веток и даже коммит можешь просто ребейзить постоянно, чтобы был один.
    Или rsync который уже обычно есть почти везде и который понятно как работает.

    Или уж настрой тот же synthing, а настройку добавь себе в гитхаб, чтобы можно было скриптом скачать готовый сетап и все.
    Ответ написан
    8 комментариев
  • Откуда эта функция берет эти файлы?

    честно, сам не знаю откуда там pdf файлы, но у тебя есть явные ошибки в коде.
    ты открываешь файл в режиме для записи («w»). если ты хочешь читать то нужно открывать в режиме для чтения («r»).
    до:
    file = ZipFile(archives[i], 'w')


    после:
    file = ZipFile(archives[i], 'r')


    и зачем так усложнять твой цикл? ты итерируешься по длинне списка и получаешь его элемент по индексу. разве не проще итерироваться сразу по списку?

    код цикла до:
    #Работа с архивами
        for i in range(len(archives)):
            file = ZipFile(archives[i], 'w')
            content = file.read("discord.txt")
            print(content)


    код цикла после:
    #Работа с архивами
        for archive in archives:
            file = ZipFile(archive, 'r')
            content = file.read("discord.txt")
            print(content)
    Ответ написан
    1 комментарий
  • Можно ли использовать ОС, созданную в hyper-v, как основную?

    Задался недавно вопросом: можно ли создать виртуальную машину в hyper-v, пробросить в неё свою видеокарту и использовать данную гостевую ОС как основную (то есть работать/играть на данной системе)?

    Да, можно, эта фича Hyper-V называется Discrete Device Assignment.
    И какая Windows понадобится для этого (имеется ввиду, можно ли использовать Win 10 или нужна Win server)?

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

    В данный момент - да, понадобится второй адаптер, т.к. устройство пробрасывается целиком. В Windows Server 2025 появится GPU partitioning, но пока хз с какими видяхами и материнками это будет работать.

    Да, кстати, насчёт оборудования. Всё это замечательно, но вам на вашей материнке скорее всего понадобится поддержка SR-IOV, ну и соответственно IOMMU на матери и процессоре.

    Во-вторых, далеко не все видяхи официально поддерживаются технологией DDA, обычно для этого тестируются только pro-шные линейки карт. Может оно будет работать и с вашей картой. Драйвера карт потребительского сегмента могут блокировать запуск карты, проброшенной в виртуальную машину, или просто работать некорректно (блокируют запуск, т.к. не поддерживают сценарий проброса). Например, сейчас для работы ряда AMD-шных карт с пробросом в ВМ нужен костыль vendor-reset (это линуксовый модуль ядра, для Hyper-V не годится). И NVidia относительно недавно начала поддерживать проброс линейки GeForce в виртуалку (и то непонятно, как там с Hyper-V DDA).

    Я сам использую подобный сетап и пишу прямо сейчас с него, но у меня в качестве гипервизора KVM (использую дистр Proxmox), и материнка ASRock Rack ROMED8-2T, где есть вышеуказанные плюшки (кстати, в качестве адаптера для хоста прокатывает встроенный в мать ASPEED AST2500, поэтому полноценная карточка у меня только одна). В гостевую виртуалку с Windows 11 проброшена карточка Radeon RX 5500 XT, с учётом вышеупомянутого костыля в целом работает. Есть некоторая нестабильность, плюс иногда приходится вместе с виртуалкой перезагружать весь хост. Но это следствие того, что AMD не поддерживает для этих карт работу в пробросе (хотя и не блокирует искусственно), с нвидией возможно было бы получше.

    Ищите информацию по ключевым словам VFIO и PCI passthrough, на Реддите есть неплохое коммюнити. И да, готовьтесь копать много информации и перепроверять её (например мой ответ тоже стоит перепроверить, всё довольно быстро меняется) и покупать оборудование сильно дороже потребительского (если у вас его ещё нет). По Hyper-V DDA информации тоже не так много, советую рассмотреть дистры с KVM, если вам не так принципиально.
    Ответ написан
    1 комментарий
  • Как правильно списывать ИТ оборудование в компании?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ЕМНИП, сейчас лимиты такие, что практически всё компьютерное железо можно списывать как малоценку безо всяких обоснований. Но, вообще, списанием должна заниматься бухгалтерия, а не сисадмин.
    Ответ написан
    4 комментария
  • SQLite не хочет добавлять данные, введенные пользователем в тг боте в базу данных, что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    INSERT INTO result(name) VALUES (ilya)
    Вы пытаетесь вставить в колонку name значение из колонки ilya. Строки должны быть в кавычках.
    Для защиты от SQL-инъекции нужно использовать плейсхолдеры
    - cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})')
    - db.commit()
    - cur.execute(f'INSERT INTO result(name) VALUES({data['School_class']})')
    + cur.execute('INSERT INTO result(name, class) VALUES (?, ?)', (data["Name"], data['School_class']))
    Ответ написан
    Комментировать