Задать вопрос
  • Как победить Run-time error - интерпритатор на сайте учебного заведения?

    @o5a
    uZhanKa, не особо понятно по условиям, что они хотят затирать. Но вообще, чтобы выводить текст в одно и то же место, нужно использовать flush и перевод строки. Пример:
    import time
    
    for i in range(5):
        print('direction: ', i, end='\r', flush=True)
        time.sleep(1)

    Что именно они хотят выводить таким образом, я не особо понял.
  • Как вывести список файлов с размером и папок с датой создания, приняв за аргумент путь?

    @o5a
    Анна, потому что getsize нужно передавать путь к файлу, а в приведенном скрипте передается z, который равен пути к папке верхнего уровня и не меняется. Примерно так, будет выводить файлы и их размер:
    for root, directories, files in os.walk(z):
        for file in files:
            fullname = os.path.join(root, file)
            print(fullname, os.path.getsize(fullname))


    или так, если нужно выводить папки и содержащиеся в них файлы, без полных путей
    for root, directories, files in os.walk(z):
        print(root)
        for file in files:
            fullname = os.path.join(root, file)
            print(file, os.path.getsize(fullname))
  • Как заполнить каждый 7-ой элемент массива?

    @o5a
    Andrey Dugin, насколько я понял, просто массив постепенно заполняется каждый 7-й элемент с закольцовыванием. Т.е. индексы: 6, 3, 0 и т.д. Только у него в примере ошибка.
  • Как автоматически менять символ в названии файла с помощь range?

    @o5a
    Саблайм, для автонумерации файлов можно regexp использовать, типа такого (в данном случае предполагает наличие расширения файла)

    import re
    
    filename = 'asd.33.lk3.3s23120b.jpg'
    
    m = re.match("(.+?)(\d+)?(\.[^\.]+)$", filename)
    if m:
        new_name = f"{m.group(1)}{int((m.group(2)) if m.group(2) else 0)+1}{m.group(3)}"
        print(new_name)
  • Какой принцип работы метода groupby в Pandas?

    @o5a
    Данные группируются по колонкам, указанным в groupby(). Ко всем остальным колонкам применяется функция, указанная дальше, в данном примере count(), т.е. показывает кол-во строк с непустыми значениями по каждой группе.
  • Какой из ответов правильный?

    @o5a
    Разве что разница в регистре. В задаче работают с заглавными буквами, у вас почему-то строчные в коде.
  • Как сделать чтобы бот вк возвращал только id пользователей беседы, а не всю информацию?

    @o5a
    Ответ уже подсказали, но если все еще не понятно, то вот
    members = [item['member_id'] for item in a['items']]
  • Python dict и pymysql?

    @o5a
    2-й вопрос желательно переформулировать, не понятно, что требуется-то?
    Используя key:test_1 из one_dict достать словарь из two_dict по key:test_1.

    Просто достать словарь из two_dict, у которого есть key:test_1? Тогда причем тут one_dict вообще?
    И приведенный пример кода вообще не соответствует постановке задачи.
  • Как правильно отформатировать строку?

    @o5a
    mardari98,
    Думал брать валюту как последний элемент массива, а первые два конкатенировать в 1 строку. Но это костыль какой-то, ещё и нерабочий, потому что в цифрах типа 1 000 000 $ эта логика уже не будет работать.
    Если символ валюты всегда один (не разбит пробелами), то вполне можно и этим методом, например:
    a= '1 000 000 $'
    print(''.join(a.split()[:-1]))
  • Как правильно отформатировать строку?

    @o5a
    Автор не озвучивал требование, но должен иметь в виду, что приведенный метод не учитывает числа с дробной частью, если они там все же будут. Но поправить тоже не сложно, если потребуется.
  • Не работает Pyttsx. Что делать?

    @o5a
    Открой консоль (cmd) и в ней уже запусти скрипт: python названиескрипта
  • Что не так в коде?

    @o5a
    Lil Nestor, чтобы нормально работать напрямую с запрашиваемыми данными, измени свой sql_wrapper.select, чтобы он возвращал сразу данные, а не объект курсора.
    def select(self, sql):
        return self.cursor.execute(sql).fetchone()

    Тогда sw.select будет сразу возвращать кортеж данных или None в случае их отсутствия. И можно будет сравнивать результат.
    Учти, что fetchone возвращает только первую строку данных. В приведенном коде насколько вижу, только 1 и используется. Но если будут использоваться несколько строк данных (например, запрос к базе о всех пользователях с какими-то параметрами), то надо использовать fetchall и работать как со вложенным списком.
  • Как исправить запрос SQLite(код на Python)?

    @o5a
    Maxim045, Т.е. данные в таблицу обложек заносятся, но не формируется сам файл обложки в папке?

    1. Проверь, что data = music.getall('APIC')[0].data работает и что-то возвращает.

    2. Проверь, что cover_path действительно формирует адекватный путь, например, через простой print(cover_path). Похоже там совсем не то, что задумывалось. Во-первых вижу берется полный путь файла, а затем после удаления символа его пытаешься использовать как имя файла.

    3. Из-за построения проверок duplicate_one/duplicate_two получается, что добавление обложки (файла) будет только если в базе еще нет такой записи, совпадающей по всем 4-м параметрам. Возможно, в базе такая запись уже была от предыдущих экспериментов, поэтому файл и не создается.

    4. В блоке с duplicate_two наверное все же имелось в виду UPDATE по ключу path, а не cover_path, т.е. так
    if duplicate_two:
            cur.execute('UPDATE covers_db SET Cover_Path=?, Album_Title=?, Album_Artist=?, Year_of_Publishing=? WHERE File_Path=?', (cover_path, album_title, album_artist, year_of_publishing, path))


    И вообще такая структура таблицы обложек (когда в одной таблице хранятся и данные обложки и связь обложки с треком) не является правильной. В такой реализации одна и та же запись с обложкой будет дублироваться на все треки альбома. Для реляционной базы данных правильнее отдельно сделать таблицу для хранения данных обложек, и отдельно таблицу связи этих обложек (по идентификаторам) с соответствующим музыкальным файлом. Но это конечно потребует хотя бы начальных знаний SQL и использование объединений нескольких таблиц, чтобы получить данные из запросов.
  • Как красивее удалить N элемент из списка содержащего словари?

    @o5a
    remove удаляет именно указанный элемент, т.е. в данном случае так:
    a = [{'https': 'https://127.0.0.1:3128'}, {'https': 'https://127.0.0.18080'}, {'https': 'https://127.0.0.1:53052'}, {'https': 'https://127.0.0.1:44299'}]
    a.remove({'https': 'https://127.0.0.1:53052'})
    print(a)

    А зачем такая вложенная структура? Если цель просто хранить список прокси, то можно обойтись обычным списком строк, в данном случае
    a = ['https://127.0.0.1:3128', 'https://127.0.0.18080', 'https://127.0.0.1:53052', 'https://127.0.0.1:44299']
    a.remove('https://127.0.0.1:53052')
    print(a)
  • Как присоеденить код программы к интерфейсу?

    @o5a
    FeeFort103, я думал, будет понятно, что реализация этой функции (и привязка ее к событию) должна быть внутри класса, а не в основном коде.

    Судя по остальным ошибкам, Вам действительно стоит подучить основы языка.

    text = text.replace('пд','пипец')

    ну и остальное аналогично
  • Почему не заполняется база данных SQLite?

    @o5a
    Maxim045, в данном случае record это объект курсор, он существует, даже если данных нет, так что проверять так бессмысленно. Нужно проверять наличие данных по этому курсору, через fetchall или fetchone.
    record = cur.execute('SELECT * FROM tags_db WHERE Path=?', (path, ))
    result = record.fetchall()
    
    if not result:
    # и далее ...

    Тогда будет работать как планировалось - добавлять, если еще не было записей по данному path.

    Но вообще не совсем понятно, что именно не работает? Вставка данных в вашем варианте все равно должна быть.
  • Почему не заполняется база данных SQLite?

    @o5a
    Maxim045,
    1. Чтобы передать параметры в execute, нужно использовать кортежи. Если параметр один, то все равно его нужно оформить как кортеж. Т.е. в данном случае нужно было писать
    sql = cur.execute('SELECT * FROM tags_db WHERE path=?', (path, ) )

    Без этого такое использование как раз вызывает исключение.
    2. Но в целом конструкция нелогичная. sql заполняется, но не используется.
    Логика должна быть такая (судя по всему, цель обновить данные, а если их не было - занести): считываем как есть в sql, и если он пустой, то делаем INSERT, в противном случае UPDATE. А не как сейчас.
    Альтернатива этому - делать INSERT ... ON CONFLICT UPDATE (почитай про upsert). Но для этого нужно указать первичный ключ.

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

    @o5a
    Zefffir, БД хорошее решение, лучше масштабируется, чем json. Но на всякий, если данных не много, то записывать назад json тоже не сложно. Загружаем данные в словарь через json.load() меняем словарь, и заново записываем в файл через json.dump().
  • Как присвоить значение ключу словаря на Python, который находится в JSON-файле?

    @o5a
    Zefffir, после того, как json прочитается через json.load() на выходе будет обычный словарь. Чаще всего вложенный, бывает с использованием списков, но работать с ним точно так же, как с обычным словарем.
  • Что надо сделать что бы Sqlite UPDATE заработал?

    @o5a
    Почему в исполнении UPDATE user_info в параметрах используется name[0], а не просто name? Насколько можно понять из остального кода, в name передается единственное имя строкой. Если это так, то из-за name[0] команда пытается проапдейтить таблицу по имени из одной буквы, и соответственно ничего не происходит.