• Где OpenShift хранит образы?

    paran0id
    @paran0id
    Умный, но ленивый
    У подов есть такая imagePullPolicy, она может быть IfNotPresent, Always или Never. Подробности тут.

    А закэшированные образа хранятся на нодах в /var/lib/docker.
    Ответ написан
    Комментировать
  • K8s как запустить множество yml?

    paran0id
    @paran0id
    Умный, но ленивый
    kubectl apply -f /путь-к-папке применит все yaml из папки
    Ответ написан
    1 комментарий
  • K8s как запустить множество yml?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    ls -1 *.yml | xargs -n1 kubectl -f apply
    Ответ написан
    Комментировать
  • Можно ли записать в файл дату, и потом загрузить из файла дату в таком же формате?

    karabanov
    @karabanov
    Системный администратор
    Записывай, как unix timestamp, а потом делай с ним всё что захочешь.
    Ответ написан
    3 комментария
  • Как достать превью видео с youtube автоматически?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Не знаю, может ли дискорд автоматом такое получить, но в любом случае, превью можно получить через ID видео:
    https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg, где VIDEO_ID - id видео,

    Как пример:
    from urllib import parse
    
    url = 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
    
    video_id = parse.parse_qs(parse.urlparse(url).query)['v'][0]
    
    thumbnail_url = f'https://img.youtube.com/vi/{video_id}/hqdefault.jpg'
    Ответ написан
    1 комментарий
  • Как строку из бд превратить в массив?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Для начала - подучите, что делает команда loads и с какими входными параметрами она работает.
    2.Почитайте, что такое списки и как с ними работать.
    Ответ написан
    Комментировать
  • Что еще можно добавить?

    Vindicar
    @Vindicar
    RTFM!
    Мой совет: сделай каждую команду отдельной функцей вида:
    # ': str' - это type hint. На выполнение не влияет, оно в первую очередь для читаемости. Можешь пока пропустить.
    def command_plus(args: str):  # функция получает аргумент как строку, вместо вызова input().
            "Складывает указанные числа."  # doc-string содержит человекочитаемое описание функции
            print("Калькулятор на сложение")
            parts = [int(part) for part in args.split()]  # операции со строками, list comprehensions
            if not parts:  # какие значения в питоне истинные (truey), какие ложные (falsy)?
                    parts.append(int(input("1-е число: ")))
                    parts.append(int(input("2-е число: ")))
            res = sum(parts)
            print(f"Результат: {res}")  # f-строки

    Далее, научись работать со словарями:
    # словарь, содержащий имя команды и её функцию
    commands = {
            'calc +': command_plus,
            # тут будут другие команды
    }

    Тогда рабочий цикл будет примерно таким:
    while True:
            cmd = input('Введите команду: ')  # например, "calc + 2 3 5"
            for cmd_name, cmd_func in commands.items():  # цикл for, операции со словарями
                    if cmd.startswith(cmd_name):  # операции со строками
                            cmd = cmd[len(cmd_name):]  # срезы (slice)
                            try:  # обработка исключений
                                    cmd_func(cmd)
                            except Exception as err:
                                    print(f"Произошла ошибка: {err}")
                            break  # операторы передачи управления
            else:  # Как работает оператор else: совместно с циклами?
                    if cmd == 'exit':
                            print('До свиданья')
                            break # прерываем while
                    else:
                            print(f"Неизвестная команда: {cmd}")

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

    danila763
    @danila763
    Учу python, sql
    if dd.lower() == 'файл':
        pass
        # удаляем файл
    elif dd.lower == 'папку' :
        pass
        # удаляем папку
    else:
        print('ошибка ввода') 
        # выдаём ошибку


    Код надо вставлять как код, есть специальный значок
    >

    А можно удалить и папку и файл командой
    shutil.rmtree('путь к папке / файлу')
    Ответ написан
    1 комментарий
  • Подскажете аналог set(), но для словаря?

    Vindicar
    @Vindicar
    RTFM!
    Даже не знаю с чего начать.
    Во-первых, массивы в питоне - это array, и они используются нечасто. Я сильно подозреваю, что ты имел ввиду списки (list).
    Во-вторых, set() к спискам отношения не имеет, это абсолютно самостоятельная структура данных - множество. От того, что есть идиома без_повторов = list(set(с_повторами)) set() не становится методом списка или чем-то подобным. Эта идиома прекрасно работает с любым коллекциями - списками, кортежами (tuple), да с чем угодно.
    В-третьих, повторы чего ты хочешь устранить? Ключей? Значений?
    Если ключей, то в словарях ключи и так не повторяются, как уже написали выше. Повторяющийся ключ просто заменит собой старый.
    Если значений, то тебе сначала придётся решить, какой из ключей с одинаковым значением сохранить.
    Ответ написан
    Комментировать
  • Подскажете аналог set(), но для словаря?

    Собственно, в словаре и так запрещены повторения ключей, так что что-то ещё искать не нужно
    Ответ написан
    Комментировать
  • Как превратить число в список?

    Chegevara_kyc
    @Chegevara_kyc
    Вот
    Вариант 1:
    a = 8299
    a = str(a)
    spicoc = list(a)
    print(spicoc) #['8', '2', '9', '9']

    Вариант 2:
    a = 8299
    a = str(a)
    spisoc = []
    for i in a :
    	spisoc.append(int(i))  # int  если нужно что бы элемент сразу был числом
    print(spisoc)# [8, 2, 9, 9]
    Ответ написан
    Комментировать
  • Как работать с большими массивами?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если поиск в массиве осуществляется через foreach, то грош цена такому массиву.

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

    Конечно, на формирование массива тоже тратится время, какой бы оптимизированный поиск ни был. Поэтому супер большие массивы - тоже признак плохой оптимизации. Не зря же придумали базы данных. А что если в базе не 30 тыс. товаров, а миллиард? Тоже загоните их в массив? Надеюсь, что нет, а вместо этого будете пользоваться средствами поиска самой базы данных.

    Но если всё же оптимизировать создание массива наравне с последующим поиском по нему, то нужно будет углубиться в суть задачи, а также изучить, какие вообще есть структуры данных в PHP, какие у них плюсы и минусы, как они устроены на низком уровне, и как на их основе сделать более совершенные структуры данных (конкретно для вашей задачи).
    Ответ написан
    3 комментария
  • Где можно пройти хорошие онлайн курсы по DevOps?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    DevOps - это движение и/или методология. Ни тем, ни другим стать у вас не получится.
    Ответ написан
  • Где можно пройти хорошие онлайн курсы по DevOps?

    nonname
    @nonname
    Как выше уже сказали профессии такой нет, но есть инженеры, которые используют DevOps практики.
    Я в эту профессию попал из системного администрирования, имея довольно неплохой бэкграунд и последнее время склоняюсь к тому, что это не та профессия, которую нужно начинать с нуля. Сейчас пытаюсь разработать внутренние курсы для для своего работодателя, чтобы привлечь в профессию ops инженеров или разработчиков. Сначала думал что можно дать материал джунам, но в итоге пришёл к выводу, что для начала нужно поработать в разработке\администрировании до уровня мидла, чтобы иметь представление о том как вообще работают системы, как они разрабатываются и эксплуатируются, параллельно можно изучать DevOps инструменты.
    По курсам посоветую только базовые курсы, любые какие вам по душе по темам: Linux, Python, Docker, Kubernetes, Jenkins, Git.
    Ответ написан
    Комментировать
  • Как достать ссылку из content='link'?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    from bs4 import BeautifulSoup
    
    html = '<meta property="og:audio" content="https://freesound.org/data/previews/611/611605_1648170-lq.mp3" />'
    
    soup = BeautifulSoup(html,"lxml")
    mp3_url = soup.find('meta',property='og:audio').get('content')
    print(mp3_url)

    >>> https://freesound.org/data/previews/611/611605_1648170-lq.mp3
    Ответ написан
    Комментировать
  • Хочу чтобы бот выдавал рандомные числа когда пользователь введет свое как сделать random.choice не помогает?

    desaki
    @desaki
    пишу ботов для телеги
    Скорее будет правильно так:
    bot.send_message(message.chat.id, f"Мое число: {choice(number)}")

    Объясню почему просто choice: В начале кода вы импортировали его, но пишите random.choice, это неправильно.
    Ответ написан
    1 комментарий
  • Важно ли иметь мало импортов в коде?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Импортов надо иметь ровно столько, сколько нужно вашему коду. Очевидно, если вы не импортируете библиотеку, которую используете, то код не запустится. Очевидно, бессмысленно импортировать то, что не используется.

    Да, что импорты влияют на скорость запуска - это правда. Каждый импортируемые скрипт нужно считать с диска, распарсить, интерпретировать, создать в памяти объекты загруженных из него данных и т.п.
    Ответ написан
    Комментировать
  • Как строку похожую на список превратить в список?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    from ast import literal_eval
    s = '''["A Dog's Purpose;2017", 'Fist Fight;2017', 'The Lego Batman Movie;2017', 'Jim Gaffigan: Cinco;2017', 'The Big Sick;2017', 'The Boss Baby;2017', 'Bill Burr: Walk Your Way Out;2017', 'Neal Brennan: 3 Mics;2017', 'Dave Chappelle: The Age of Spin;2017', 'CHiPS;2017', 'Table 19;2017', 'Dave Chappelle: Deep in the Heart of Texas;2017', 'Baywatch;2017', 'Snatched;2017', 'Sandy Wexler;2017', 'Win It All;2017', 'Captain Underpants: The First Epic Movie;2017', 'Cars 3;2017', 'Rough Night;2017', 'Despicable Me 3;2017', 'The Meyerowitz Stories;2017', 'War Machine;2017', 'Vir Das: Abroad Understanding;2017', "Norm Macdonald: Hitler's Dog, Gossip & Trickery;2017", 'Goon: Last of the Enforcers;2017', 'Oh, Hello: On Broadway;2017', 'The House;2017', 'Logan Lucky;2017', 'The Emoji Movie;2017', 'Rory Scovel Tries Stand-Up for the First Time;2017', "The Hitman's Bodyguard;2017", 'Self-criticism of a Bourgeois Dog;2017', 'Kingsman: The Golden Circle;2017', 'Ari Shaffir: Double Negative;2017', 'The Nut Job 2: Nutty by Nature;2017', 'Little Boxes;2017', 'Maz Jobrani: Immigrant;2017', 'Lady Bird;2017', 'Paddington 2;2017', 'The Death of Stalin;2017', 'Christina P: Mother Inferior;2017', 'Creep 2;2017', 'A Bad Moms Christmas;2017', "Daddy's Home 2;2017", 'The Disaster Artist;2017', 'Ferdinand;2017', 'Jack Whitehall: At Large;2017', 'Lynne Koplitz: Hormonal Beast;2017', 'Craig Ferguson: Tickle Fight;2017', 'Judd Apatow: The Return;2017', 'Dave Chappelle: Equanimity;2017', 'Dave Chappelle: The Bird Revelation;2017', 'Game Night;2018', 'Isle of Dogs;2018', 'The Clapper;2018', 'Tom Segura: Disgraceful;2018', 'When We First Met;2018', 'Fred Armisen: Standup for Drummers;2018', 'Love, Simon;2018', 'Game Over, Man!;2018', 'Blockers;2018', 'Deadpool 2;2018', 'Sorry to Bother You;2018', 'Ant-Man and the Wasp;2018', 'Mamma Mia: Here We Go Again!;2018', 'Tag;2018', 'The Man Who Killed Don Quixote;2018', 'Boundaries;2018', 'BlacKkKlansman;2018', 'Jeff Ross Roasts the Border;2017', 'Gintama;2017', 'Black Butler: Book of the Atlantic;2017', 'No Game No Life: Zero;2017']'''
    s = literal_eval(s)
    Ответ написан
    Комментировать
  • Возможно реализовать пересылку сообщений из VK в Telegram?

    @ikaktusz
    Возможно.
    Ответ написан
    Комментировать