• Можно ли задать размеры и расположение консольного окна при запуске через subprocess на python?

    Vindicar
    @Vindicar
    RTFM!
    По-простому - нет. Можно через задницу, т.е. через WinAPI.
    Лучше напиши, зачем тебе это - может, проще не использовать консоль?
    А мне по-простому и не интересно

    * используй ctypes для работы с функциями winapi
    * Функция WINAPI EnumWindows() чтобы найти все окна в системе
    * Функция WINAPI GetWindowThreadProcessId() чтобы узнать ID процесса, которому принадлежит окно.
    * таким образом ищешь дескриптор окна своего дочернего процесса
    * Функции WINAPI SetWindowPos() + SetWindowSize(), чтобы позиционировать найденное окно

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

    sswwssww
    @sswwssww
    def cicle_funct():
        i = 0
        while i < 10:
            i += 1
            yield i
    
    
    c = cicle_funct()
    while True:
        print(next(c))


    А "лучше":
    def cicle_funct():
        i = 0
        while i < 10:
            i += 1
            yield i
    
    
    cc = cicle_funct()
    for c in cc:
        print(c)
    Ответ написан
    Комментировать
  • Python: как оставить в текстовом файле строки определенного формата?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    На самом деле этот файл представляет из себя json, который и надо разбирать как json, не занимаясь разбиением на строки и прочей ерундой:

    import json
    
    json_text = '''{"total":20,"rows":[
    {"id":123,"mark":null,"Status":2,"MessageNumber":123456789,"text":"Привет"},
    {"id":1234,"mark":null,"Status":1,"MessageNumber":23456789,"text":"Пока"},
    {"id":12345,"mark":null,"Status":2,"MessageNumber":345678, "text":"Ало"}]
    }'''
    
    data = json.loads(json_text)
    
    numbers = [x["MessageNumber"] for x in data["rows"]]
    print (numbers)
    with open("output.txt", "w") as f:
       print (", ".join(str(x) for x in numbers), file=f)
    Ответ написан
    Комментировать
  • Как правильно отсортировать записи в БД?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Согласен с Кирилл Пальчевский , что следует привести данные к нормальной форме, но если нужно то:
    SELECT 
    	`tokens`.* 
    FROM `tokens` 
    ORDER BY REPLACE(SUBSTRING_INDEX(s_short,';',3), SUBSTRING_INDEX(s_short,';',2), '') DESC;


    Или компактный вариант предложенный Akina
    SELECT 
      `tokens`.* 
    FROM `tokens` 
    ORDER BY SUBSTRING_INDEX(SUBSTRING_INDEX(s_short,';',3),';',-1) DESC;


    MySQL SUBSTRING_INDEX test
    Ответ написан
  • Как сделать музыку на сайте так же как в вк?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Создаю свой мессенджер, задача такова что нужно сделать список абсолютно всех мелодий которые есть в мире, так же как в вк, как это можно реализовать?
    Так, давайте прикинем что нам нужно для реализации. Программная часть собственно нас не сильно интересует, так как на фоне прочих затрат найм какого-нибудь Линуса Торвальдса на пару месяцев вообще теряется в общей сумме.

    1) Хранилище. По примерным оценкам в мире в цифровом виде около 500 000 000 оригинальных музыкальных композиций. Учитывая ремиксы и каверы - можно смело брать миллиард. Средний вес композиции среднего качества - 5 Мб. То есть порядка 5 петабайт, если хранить не в лучшем качестве. Учитывая что это должно иметь какое-то резервное хранение (у нас тут серьезный сервис все-таки), умножаем на 2 (10 петабайт). При стоимости около 2 центов за гиг в месяц, 10 000 000 Гб * $0,02 = $200 000 в месяц хранение. Ну, бюджетненько в целом.

    2) БД, которая хранит данные обо всех этих композициях. Стоимость хранения будет поменьше, но думаю к 20-50К все равно где-то выйдет.

    3) Другой вопрос - где брать эти данные, так как не все музыкальные файлы содержат полное описание композиции. На перебор 1 миллиарда записей и сортировки их по жанрам, альбомам, исполнителям, дате выпуска и т.д. уйдет некоторое время. Допустим 50% композиций будут иметь нормальное описание, остается все те же 500 миллионов композиций на обработку. Пусть на каждую понадобится 2 минуты работы, внести данные в поля (хотя их еще как-то найти надо, но допустим), тогда получим 1 миллиард минут. Это 1900 лет работы, или 16 666 667 часов. Час работы самого дешевого индуса - 3 бакса/час. 16 миллионов * 3 - давайте округлим до 45 миллионов. Даже если сократить этот пункт в 10 раз - выйдет под 4 миллиона. Рабский труд сегодня дорог как никогда...

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

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

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

    По итогу на год:
    $200 000 * 12 = $2 400 000 хранилище
    $20 000 * 12 = $240 000 бд
    $20 000 * 12 = $240 000 сервера приложения
    $4 000 000 работы
    Итого: чуть меньше 7 миллионов баксов.
    Ответ написан
    2 комментария
  • Проблема с ноутбуком?

    @Mikeoldfield
    Сетевой инженер / системный администратор
    "При разборке посыпались мелкие детальки." - мне кажется, в самом вопросе кроется ответ )))))
    Ответ написан
    Комментировать
  • Как перепрограммировать браслет (Mi band 5)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Берёте программу Mi Fit или Xiaomi Wear.
    Декомпилируете, изучаете исходники, смотрите, откуда берётся прошивка и как заливается.
    Скачиваете прошивку, дизассемблируете (процессор Huangshan на архитектуре RISC-V), изучаете код на ассемблере.
    Пишете свою, компилируете, заливаете в браслет.
    С ненулевой вероятностью вам придётся написать свои дизассемблер, ассемблер/компилятор и программу для заливки прошивки.
    Ответ написан
    1 комментарий
  • Кто поможет решить задачу по JavaScript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    узнать, есть ли атрибут у элемента: element.hasAttribute('maxlength')

    установить атрибут: element.setAttribute('maxlength', 20)

    выбрать все: document.querySelectorAll('input[type=password]')

    План:
    1. выбрать все с типом password;
    2. пройти по ним циклом forEach()
    3. внутри смотреть, есть ли уже атрибут maxlength;
    4. если нет, добавить атрибут
    5. выполнить alert() в любом случае
    Ответ написан
    Комментировать
  • Выгорание. Как не сойти с ума?

    paran0id
    @paran0id
    Умный, но ленивый
    Если это только начало, то каким же весёлым будет конец? (с)
    Ответ написан
    Комментировать
  • Как код from datetime влияет на ошибку?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Модуль называется datetime, в нем лежит класс datetime. Никакой разницы по сравнению с обычными библиотеками, в принципе, нет. Хотите, импортируйте полностью datetime, тогда для использования методов класса datetime, придется обращаться к классу полностью: datetime.datetime.now(). Хотите, импортируйте только класс datetime, тогда будете обращаться сразу к нему: datetime.now()

    В коде, соответственно, тоже можно использовать один из этих двух вариантов

    1.
    import datetime 
    datetime2 = datetime.datetime.now()  
    datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
    dateFormatter = '%Y-%m-%d %H:%M' 
    dateString = "2022-02-9 20:00"
    
    spisok_start_date = datetime.datetime.strptime(dateString, dateFormatter) 
    datetime2 = datetime.datetime.strptime(datetime2, dateFormatter) 
    timedelta =  datetime2 - spisok_start_date


    2.
    from datetime import datetime 
    datetime2 = datetime.now()  
    datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
    dateFormatter = '%Y-%m-%d %H:%M' 
    dateString = "2022-02-9 20:00"
    
    spisok_start_date = datetime.strptime(dateString, dateFormatter) 
    datetime2 = datetime.strptime(datetime2, dateFormatter) 
    timedelta =  datetime2 - spisok_start_date


    Если больше ничего не нужно, кроме класса datetime, то логично было бы сделать from datetime import datetime, чтобы избежать вот такого вот расстянутого кода
    Ответ написан
    2 комментария
  • Как вывести список с одним кортежем из трёх, в котором список состоит из чётных чисел?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    for x in l:
    	if len(x[1]) %2 ==0:
    		print(x)
    или:
    s = [x for x in l if len(x[1]) %2 == 0 ]
    print(s)
    Ответ написан
    Комментировать
  • Как в множествах каждое слово брать за новый обьект?

    @deliro
    a = {x.strip() for x in input().split(",")}
    b = {x.strip() for x in input().split(",")}
    print(b - a)
    Ответ написан
    Комментировать
  • Как удалить символ из словаря?

    Vindicar
    @Vindicar
    RTFM!
    Включить голову и выучить уже стандартные структуры данных Питона.
    Вот кроме шуток
    Для начала, у тебя не словарь, а список словарей с разнообразными структурами данных внутри.
    А твой код пытается работать с этой структурой, как будто это список строк. Вот с чего ты взял, что это вообще сработает? Да ещё и используя регулярные выражения. Взял, что первой строкой в гугле попалось?


    Теперь скажи, в контексте вышесказанного - что значит "удалить символ подчеркивания"? Удалить откуда?
    Я предполагаю, что из значений в словарях внутри списка в ключе data для каждого словаря в твоем списке?
    Ну вот собственно эту фразу достаточно перевести на питон (от конца к началу), чтобы получить ответ.
    # этот код изменит твой массив "на месте", а не создаст изменённую копию!
    for mas_item in mas: # для каждого словаря в твоем списке
        for data_dict in mas_item['data']: # для каждого словаря в списке по ключу data 
            # словари не любят, когда их модифицируют и проходятся по ним for'ом одновременно
            data_dict_keys = list(data_dict.keys()) # так что заранее составляем список ключей словаря
            for key in data_dict_keys: # проходимся по этим ключам
                data_dict[key] = data_dict[key].replace('_', '') # и обрабатываем значения по этим ключам

    Как-то так. Чем тебе это подчеркивание помешало, без понятия.
    Ответ написан
    1 комментарий
  • Куда развиваться Python разработчику (не для поиска первой работы)?

    @PkQDark
    А с чего ты за пол года решил, что ты ограничен?) Основываясь на своем личном опыте, я сейчас понимаю, что первые два года вообще не понимал, что делаю, хотя тогда я так не думал:) А развиваться надо не в технологии, а а направлении, если хочешь заниматься вебом, то занимайся им. Разбери в деталях как работает все mvc. Как можно реализовать одно и тоже на django, flask, fast api и aiohttp, если тебе зачем то захотелось разобрать несколько фреймворков. Разберись как работает фронт, выучи react, angular, vue. Разберись в деталях асинхронности, что бы слова async и await, не вызывали у тебя вопросов. Изучи как работает многопоточность в питоне (херово), и что вообще такое GIL и зачем это надо. Разберись с другими протоколами, как минимум с веб сокетами. Копни глубже в архитектуру и проектирование и изучи хотя бы все основные патерны и антипатерны, научись писать код согласно SOLID. Копни глубже в питон и разберись как работают метаклассы и в чем их суть. Залезь в детали разных CI/CD и деплоймент процессы, разбери как минимум докер, кубкрнетс и/или ансибл. Копни глубоко в тестирование и разберись со всеми деталями юнитов, интеграционных, ацептанс, перформанс текстов. Закопайся в детали баз данных, что бы вообще хорошо понимать SQL, что бы вопросы чем where отличается от having, или в чем разница между postgres и mysql вообще не вызывали проблем. Опять же понимание транзакций и уровня изолированности транзакций. Понимание и умение использовать NoSQL базы, и как минимум знать где и какие применяются. Понимание где и зачем нужна микросервисная архитектура. Если вдруг ты действительно все это понял и разобрал за пол года, то я искренне тебе завидую и готов помогать и подсказывать куда развиваться и что изучать. Если что сам senior python developer / release manager, в крупной международной компании:)
    Ответ написан
    Комментировать
  • Как исправить ошибку json.decoder.JSONDecodeError: Expecting value: line 1 column 8 (char 7)?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    В JSON строка обозначается двойной кавычкой, не одинарной
    Ответ написан
    1 комментарий
  • Ошибка match python 3.9.1 invalid syntax?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Спросите у гугла, в какой версии появился match-case, думаю, молчать не будет. Это 3.10
    Ответ написан
    Комментировать
  • Не записывает или неправильно вывожу массив в python 3.9.1?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Почитайте про области видимости (пространства имён).
    У вас есть два списка iGetDay. Один - в глобальном пространстве имён модуля, другой - в локальном пространстве функции dow.
    Это разные объекты, никак друг с другом не связанные.
    Вам лучше возвращать значение из функции при помощи return и результат выполнения функции связывать с глобальным именем вне функции.
    И все значения явно передавать в функции как параметры функции и получать из функции как return. И не полагаться на области видимости, они неявные и в них легко запутаться.
    Ответ написан
    Комментировать
  • Какие языки учить для разработчика сайтов?

    Adamos
    @Adamos
    Забавный психологический нюанс.
    В ответах на этот регулярный (не реже раза в месяц) тупой (ибо элементарно гуглится) вопрос могут в пустом балабольстве дойти до Крестов, Эрланга, Брейнфака и Ассемблера.
    Но традиционно забывают реально необходимый SQL.
    Ответ написан
    2 комментария
  • Где моя ошибка в цикле while?

    @AndromedaStar
    .Net - monkey
    while (x <= b), нужно так, так как x ∈ [a,b] с шагом h.
    Ответ написан
    Комментировать