• Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, у вас там проблема в вашем непонимании что происходит и как проанализировать ситуацию. То, что у вас там еще и с кодирокой проблемы, лишь дополняет картину. Вы нигде не приводите содержимого вашего конфига. Если там есть кириллица, то следует понимать в какой кодировке у вас она там. А вы, судя по всему. пытаетесь решить проблему по гороскопу, гадая на кофейной гуще, задавая некорректные вопросы и не предоставляя полной информации, чтобы вам могли помочь.
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, я же написал вам уже!
    Разберитесь, почему у вас происходит некорректное преобразование кодировки. Настройте правильное преобразование.
    Перехватите ошибку онструкцией try\except и в случае ошибки добавьте логирование всео что необходимо для анализа проблемы: repr(cfg), repr(self.task_name).

    Чем это не устраивает? Если ошибка вопроизводится, то в чем проблема проверить как я здесь предложил?
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, Вот эта ваша уверенность, что "я ничего не трошал, а оно то так то эдак работает" звучит, будто вы что-то важное упускаете или не так понимаете. Нужно не гадать, а делить проблему на части и отлаживать по отдельности.
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, зачем?!
    сделать self.task_name.encode('utf-8').decode('utf-8')

    Такое ощущение, что вы гадаете и пытаетесь решить проблему методом перебора буков!
    Прекратите страдать хренью.
    Если тсрока уже в юникоде (str в случае 3 питона) и в ней понятный нормальный текст на человеческом языке, то проблема не здесь. Вы просто её ищете не там, где она есть, а "под фонарём", там где вам удобно искать.

    Вот вы цитировали проблему:
    'Перечек'
    Traceback (most recent call last):
      File ", line 1242, in startli_task_f
        cfg[self.task_name].update({'task_startli': str(self.startli_task.isChecked())})
      File "configparser.py", line 960, in __getitem__
        raise KeyError(key)
    KeyError: '╧хЁхўхъ'

    Разберитесь, почему у вас происходит некорректное преобразование кодировки. Настройте правильное преобразование.
    Перехватите ошибку онструкцией try\except и в случае ошибки добавьте логирование всео что необходимо для анализа проблемы: repr(cfg), repr(self.task_name).
    И всё станет ясно.

    А вы гадаете на кофейной гуще и пытаетесь методом проб и ошибок написать что-нибудь, чтобы проблема исчезла.
    Если не знаете и не хотите разбираться как в винде и питоне правильно работать с кодировками, поставьте себе линукс (например убунту) и работайте в нём. Вам будет проще.
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam,
    In [7]: b'\xd0\x9f\xd0\xb5\xd1\x80\xd0\xb5\xd1\x87\xd0\xb5\xd0\xba'.decode('utf-8')       
    Out[7]: 'Перечек'

    Это значит, что ваши байты - это utf-8.
    Декодируйте из utf-8. Не работайте нигде с закодированными строками.
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, типичная проблема с кодировкой - это ее некоректное преобразование.
    Есть два корректных действия: кодирования из юникода в байты (то есть в конкретную кодировку). При этом накосячить как-то трудно. Нужно просто знать в какую кодировку конвертировать. Если вы в лнуксе, то у вас нет никаких проблем. просто конвертируйте в utf-8 и скорее всего не ошибётесь. Имеет смысл всё держать в этой кодировке.
    Если вы в винде, то в зависимости от ситуации вам может понадобиться сконвертировать текст в cp1251, cp866, utf-8, utf-32 и в некоторых случаях однозначно узнать в какую именно не всегда можно и нужно правильно выбрать умолчание.
    При декодировании из байтов в юникод можно накосячить сильнее, если неправильно указать исходную кодировку. При этом текст повреждается, причем не всегда обратимо. Нужно очень аккурантно определять входную кодировку и, если нельзя однозначно получить ее из метаданных входного канала, нужно корректно указать умолчания.

    Есть еще один широкий класс ситуаций, когда текст приходит на вход уже поломанный неправильным преобразованием из одной кодировки в другую. То есть какая-то другая программа сделала некорректное преобраование (возможно необратимое) и сохранила рзультат в пайп или файл, а потом этот поломанный текст поступил вам в программу. К таким ситуациям лучше не приспосаливаться, а исправлять проблему в точке ее появления, то есть правильно настроить всё там, где кодировка ломается.
    В вашем случае, возможно, слеует правильно настроить кодировку страницы, которая в вашем браузере открыта, или указать кодировку по умолчанию.
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, Более подробные рекомендации могу дать только посмотрев код, по этим обрывкам ничего не скажешь
  • Почему configparser иногда не может правильно обработать русские символы в названии секции?

    trapwalker
    @trapwalker Куратор тега Python
    TemaKam, то, что у вас там хрень выводится - это уже признак некорректно работы с кодировками. Исправляйте её и всё станет нормально.
  • Как организовать масштабирование/отказоустойчивость интернет-магазина?

    trapwalker
    @trapwalker
    chipstore, тут тоже не бывает серебряной пули, только общие правила:
    - надёжность в простоте - если есть возможность отрендерить страницы сайта в статику и раздавать ее c CDN, вместо сложной взаимозависимой связки реплицирумеых баз, очередей и сервисов, то доставка контента пользователям будет более надежной.
    - принцип паретто - грубо говоря 80% результат требуют 20% трудозатрат, а оставшиеся 20% результата потребуют гораздо больше времени. Продакат-менеджер с моей прошлой работы говорил: "Не так страшны первые 90% проекта, как вторые 90%". Идея тут в том, что, возможно малозначительные для продукта и конечного пользователя фичи будут стоить слишком дорого или внесут слишком много компромиссов в безопасность или надёжность решения.
  • Почему в Ubuntu 12.04 долго переключается раскладка клавиатуры?

    trapwalker
    @trapwalker
    Да куда там! 20.04 проблема по-прежнему актуальна.
    Бесит просто.
  • Как законно организовать прием игровой валюты?

    trapwalker
    @trapwalker
    Вообще, мне кажется довольно хитрый шаг оформлять все платежи как донаты, а всем донатерам внутри игры уже выдавать игровую валюту в соответствующем размере как комплимент за вклад в развитие проекта.
    Пусть меня поправят, но так, по идее, можно юридически отвязать внтриигровые фантики от реальных денег и меньше будет геморроя со всякими правилами торговли, кассами и прочим. Просто привязываем акк пользователя к системе учета донатов и делаем автоматом игровое поощрение каждого доната внутриигровой валютой.
  • Как преобразовать аудио в массив в python?

    trapwalker
    @trapwalker Куратор тега Python
    MaxBat, Да что ж за молодёжь ленивая пошла?!
    https://google.gik-team.com/?q=wav+python

    В итоге имеем:
    https://habr.com/ru/post/113239/
    https://docs.python.org/3/library/wave.html
    https://coderoad.ru/2060628/Чтение-wav-файлов-в-Python

    Это три перые ссылки в гугле. Если вы это найти не смогли, то прочь из профессии.
  • Почему после прописывания домена сервера minecraft в dns я получаю Network Unreachable?

    trapwalker
    @trapwalker
    - Что вы подразумеаете под "настройкой DNS серврера"?
    - Вы запустили свой DNS-сервер?
    - Вы указали какой-то конкретный сервер в своих сетевых настройках?
    - О каком сайте речь?
    - Через что он доступен?
    - Какой DNS-сервер ы указали? Где вы указали DNS-сервер? Или что вы подразумеваете под его настройкой?
    - Если речь о локальных сетевых настройках, то вы их сделали одинаково и в винде и в линуксе? майн и там и там запускали?
    - Или речь о настройках в роутере?

    Перечитайте свой вопрос. Вым самому понятно что вы спрашиваете? А если представить, что никто ваши мысли читать не умеет?
  • Как вывести два списка в python?

    trapwalker
    @trapwalker Куратор тега Python
    Нарисуйте блок-схему. Судя по вашему коды вы вообще не понимаете, что пишете. Если вам дадут правильный ответ, то вам это не поможет, проблема не в том, что вы не знаете как использовать встроенную функцию zip, а втом. что не понимете как работают базовые алгоритмические структуры и как их применять. Для этого нужно читать книжку для самого базового уровня.
  • Как перевести первый символ в строке с верхнего регистра на нижний на Python?

    trapwalker
    @trapwalker Куратор тега Python
    user3333, как-то вы странно реагируете на помощь. Сергей Горностаев прав, похоже вы пренебрегли самыми основами изучения языка, если не знаете, что строки в питоне не изменяемый тип. То есть в строке нельзя изменить ни одного символа, кк это можно сделать в большинстве языков. Можно лишь соорудить новую строку из частей старой соединяя фрагенты. Именно это вам в ответе и показали.

    Ещё важная деталь питона, которую осваивают в каждой книге по нему на первых атапах - это понимание, что переменная - это не "коробочка" зарезервированного пространства в памяти, куда кладётся значение, а "ярлычок", который привязывается к тому или иному объекту. равильнее говорить, что переменная - это не область памяти со значением, а имя какого-то объекта. При присвоении мы назначаем имя (внутри определенного пространтсва имен) какому-то объекту. Потом можем дать это имя другому объекту. А если на старый объект не сылается ни одного имени, то питон его уничтожит как мусор.

    Не тратьте время, не изучайте питон методом тыка и вопросов прохожим. Возьмите книгу Марка Лутца и читайте последовтаельно, выполняя упражнения.
  • Проект - замок с уникальным id, который открывается и закрывается удаленно после оплаты. Как лучше реализовать?

    trapwalker
    @trapwalker
    FelineKisa, ага, гляну сейчас.
    UPD: в вашем письме никакого ТЗ не обнаружил. Присылайте пообщаемся.
  • Вывод дней недели?

    trapwalker
    @trapwalker Куратор тега Python
    Зачем так сложно, если достаточно просто одного среза?
    days[d.weekday() + 1:]
  • Вывод дней недели?

    trapwalker
    @trapwalker Куратор тега Python
    можно.
    Приводите свои соображения и попытку решения, и вам подскажут где вы ошибаетесь.
  • Как проверить международный номер телефона на валидность?

    trapwalker
    @trapwalker
    Значит не надо ничего валидировать, просто писать какой код страны определился и делать пометку если номер не похож на валидный. Можно хранить список регекспов по степени толерантности для разных префиксов..
    То есть для россии +7 и десять цифр железно, иначе инвалид. Для мексики +52 и сколько то цифр в хаданном интервале для правильного номера, но принимать и неправильные номера, просто помечать. что для мексики это странный номер