• Как убрать зависание WinForms во время выполнения цикла?

    Ternick
    @Ternick
    Вам нужно использовать потоки.
    Циклы, исполнение других сложных функций внутри потока gui вызывает зависание и падение программы из-за блокировки основного потока приложения, в результате чего программа не может обрабатывать другие события.
    Примеры:
    https://docs.microsoft.com/en-us/dotnet/api/system...
    Ответ написан
    4 комментария
  • Код не правильно считает слова из файла. Почему и в чем ошибка?

    Ternick
    @Ternick
    Мой вариант:
    CODE

    def main():
    	list_from_line = []
    	with open("input.txt") as f:
    		for line in f:
    			list_from_line += line.lower().strip().split()
    
    	unique_keys = set(list_from_line)
    
    	top = {
    		key: list_from_line.count(key) for key in unique_keys
    	}
    
    	max_count = max(top.values())
    
    	top_items = [item for item in top.items() if item[1] == max_count]
    
    	result = min(top_items, key = lambda x: x[0])
    
    	print(f"{result[0]} {result[1]}")
    
    if __name__ == "__main__":
    	main()



    Не претендую на понятность)
    Так как обычно пишу код стараясь использовать уже готовые функции.
    Думаю работает.

    Результат первого теста:
    abc 3
    Результат второго теста:
    u 11

    Если что-то непонятно, могу объяснить, но рекомендую всё таки разобраться самому)
    Курсы лучше проходить самостоятельно, это не самое сложное задание, что я видел)
    Что будет дальше? Когда пойдут задания по сложнее?
    Ответ написан
    Комментировать
  • Как вставить хеш recatcha v3?

    Ternick
    @Ternick
    Вообще, если руками делать, то проще всего сделать это так:
    https://rucaptcha.com/api-rucaptcha#solving_recapt...
    Но если нужно именно js решение, то можно так:
    https://rucaptcha.com/api-rucaptcha#invisible

    document.getElementById("g-recaptcha-response").innerHTML="TOKEN_FROM_RUCAPTCHA";
    Ответ написан
  • VBA EXCEL - Как сделать текст полужирным и курсивом в Telegram Bot?

    Ternick
    @Ternick
    Там есть такая штука как форматирование. Просто поставить символы недостаточно.
    https://core.telegram.org/bots/api#sendmessage
    Там есть пункт parse_mode, его нужно указывать, при форматировании тегом , как в html
    Добавил в ответы, чтобы не светился в списке вопросов, без ответа.
    Ответ написан
    Комментировать
  • Как загрузить локальные картинки в json?

    Ternick
    @Ternick
    Можно ваши картинки собрать в один json файл. Все картинки желательно оптимизировать под размер и качество)
    Дальше их можно сложить в base64 и запаковать в json.

    Дальше итерироваться по json и создавать объект дома. Например тег img и указывать src подобным образом.
    Ответ написан
    Комментировать
  • Не работает декоратор для получения сообщений telethon?

    Ternick
    @Ternick Автор вопроса
    Ага, понятно
    https://habr.com/ru/post/425151/
    Ответ написан
    Комментировать
  • Как сервер Телеграм находит моего телеграм-бота, написанного на node.js?

    Ternick
    @Ternick
    Всё просто)

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

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

    Документация по этому поводу:
    https://core.telegram.org/bots/api
    Там описаны все возможные методы и структуры для работы с апи.
    Ответ написан
    8 комментариев
  • Как реализовать прогрессбар при обработке файла в Python?

    Ternick
    @Ternick
    Вообще на самом деле так себе идея, но вам виднее)

    В любом случае нужно знать количество строк в файле, поэтому, самый простой вариант, что я знаю, такой:
    Code

    from tqdm import tqdm
    
    with open("test.txt") as file:
    	num_lines = sum(1 for line in file)
    
    	file.seek(0)
    
    	with tqdm(total = num_lines) as pbar:
    
    		for line in file:
    			a = str.strip(line)
    			h = func_1(a)
    			func_2(a, h)
    			
    			pbar.update(1)

    В целом на stackoverflow, есть целая статья, где рассматриваются разные варианты получения количества строк в файле, можете выбрать более оптимизированный, если этот вам не подойдёт.

    Документация относительно tqdm.
    Ответ написан
    4 комментария
  • Как узнать на сколько пикселей отличаются друг от друга фотографии в python?

    Ternick
    @Ternick
    Используйте модуль PIL.Image,
    КУСЬ


    Как-то так
    from PIL import Image
    
    img = Image.open("sample.png")
    
    width, height = img.size
    
    print(width, height)#ширина и высота соответственно
    Ответ написан
  • Как исправить ошибку на страницы при работе webdriver?

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

    Вот моя консоль после загрузки сайта.
    КЛАЦ
    imagea7ac1f99de56f1c5.png


    К слову, подобный вопрос отводит меня к тому, что вы не понимаете, что такое selenium)
    Ели очень кратко, то это ваш браузер, с незначительными поправками в его настройках, которые позволяют браузеру нажимать на кнопки, видеть элементы и многое другое, эти изменения практически никогда не влияют на сам сайт, если он работает в обычном браузере, то будет работать и с selenium. Но, следует заметить, что некоторые сайты анализируют настройки вашего браузера и могут распознавать selenium со всеми вытекающими последствиями)
    Ответ написан
  • Ругается антивирус на безвредную программу, как решить?

    Ternick
    @Ternick
    Ну что же)
    Я внесу тоже свой вклад)

    Антивирусам не очень нравится сам питон, а не ваш код. В своё время этот интерпретатор засветился в разных вспышках вирусной активности, следы этого до сих пор преследуют его)

    Учитывая то, что исполняемый файл, который был упакован какими-то внутренними решениями, по типу (cx_freeze, pyinstaller, py2exe and etc.) по сути является архивом, в котором лежит сам питон, библиотеки и ваш код в формате .pyc(py compiled).

    Если ближе к телу, это ложные срабатывания, их никак не избежать, смиритесь или бегите в другой яп, к слову сама идея, переносить змеиные исходники в виде exe очень плоха, питон не совсем нужен для этого)

    Соглашусь с MichaelMih, как вариант использовать альтернативные питоны(cython, ironpython, jython and etc.).

    Надеюсь вам помог мой ответ)
    Ответ написан
    2 комментария
  • Почему не парсится дата из email?

    Ternick
    @Ternick Автор вопроса
    Гугл)
    from dateutil.parser import parse
    Ответ написан
    Комментировать
  • Как узнать ID последнего сообщения pyTelegramBotAPI?

    Ternick
    @Ternick
    1) Какой вообще messages.sendMessage, нет такого и никогда не было, есть только bot.send_message, причём bot = TeleBot(config["apiKey"], threaded = False).
    2) bot.send_message возвращает всякий хлам, id только что отправленного сообщения в том числе.
    @bot.message_handler(commands=['start'])
    def start(message):
    	print(bot.send_message(message.chat.id, "tess").message_id)
    Ответ написан
    Комментировать
  • Проблемы при попытке получить письма с pop.yandex.by?

    Ternick
    @Ternick Автор вопроса
    Фишка в том, что msgnum представлена в byte, а нужно в int, вот и весь вопрос.
    FIX

    def main(email, password):
      pop = POP3_SSL("pop.yandex.by")
      pop.user(email)
      pop.pass_(password)
      response, lst, octets = pop.list()
      print(response, lst, octets)
      for msgnum, msgsize in [i.split() for i in lst]:
        (resp, lines, octets) = pop.retr(int(msgnum))
        msgtext = "n".join(lines) + "nn"#Нужно отлаживать, тут бред происходит
        message = email.message_from_string(msgtext)# тут тоже
        print(message)
        pop.dele(int(msgnum))
      pop.quit()

    Ответ написан
    Комментировать
  • Почему функция возвращает только первую итерацию?

    Ternick
    @Ternick
    В вашем коде чёрт ногу сломит :)
    А вообще проблема в табуляции, return находиться в цикле и по этому происходит, только первая итерация.
    FIX
    def f_readlist():
        with open('flats_list') as file_flats:
            consetsen = file_flats
            s = list()# s список
            for s in consetsen:#s строка
                s = s.split()# s список
            return s
    print(f_readlist())

    Но что-то мне подсказывает ваш код всё ещё не будет работать, так как вы хотите, из-за непонятных манипуляций с переменной s.
    Ответ написан
    2 комментария
  • Как вернуть SSL контекст по умолчанию?

    Ternick
    @Ternick
    По стандарту переменная ssl._create_default_https_context хранит в себе адрес функции create_default_context из того же модуля.

    Если я всё правильно понял, вопрос решается одной строчкой кода:
    ssl._create_default_https_context =  ssl.create_default_context
    Ответ написан
    Комментировать
  • Как работает функция send_photo?

    Ternick
    @Ternick
    1) Где грамотность, почему предложение начинается с маленькой буквы и где запятые ?!
    2) Почему основной тег стоит Боты, а не питон ?
    3) Серьёзно ? tekebot ?
    4)Библиотека telebot является полностью открытой и доступна на github.
    5) Интересующую вас функцию можно найти в этом файле на гитхабе.
    6)Если вам ничего не понятно, а так скорее всего, следует понять, что писать телеграмм ботов обойдя хотя бы месяц обучения основам языка, а не идти сюда и задавать вопросы не имеющие особого смысла.
    Ответ написан
    Комментировать
  • Почему не получается спарсить информацию с сайта?

    Ternick
    @Ternick
    Проблема в куках, без них сайт отказывается работать, а на этом сайте куки устанавливаются js, которого в питоне нету, как вариант вручную прописывать кукис (__atuvs), я немного потыкал и пришёл к выводу, что проверяется только его наличие, а содержимое нечто случайное.

    Как вариант:
    import requests
    import time
    from bs4 import BeautifulSoup as BS
    
    phone = input("phone: ")
    
    num_name = []
    phone_ow = requests.get(f'https://phonebook.space/?input={phone}', cookies={"__atuvs":""}).text
    content = BS(phone_ow, 'html.parser').find('div', class_='results')
    for i in content.find_all('li'):
      num_name.append(i.text.strip())
    name = ', '.join(num_name)
    
    
    print(name)
    Ответ написан
    Комментировать
  • Ошибка в Pygame: AttributeError: 'str' object has no attribute 'image'. Что делать?

    Ternick
    @Ternick
    Ошибка возникает в методе create класса Wall:
    class Wall(pygame.sprite.Sprite):
        def init(self):
            pygame.sprite.Sprite.__init__(self)
            self.fill(BLACK)
            self.rect = self.image.get_rect()
            self.rect.center = (WIDTH / 2, HEIGHT / 2)
        def create(self,colour,x,y):
            self.image.fill(colour) #Тута
            self.rect.y = y
            self.rect.x = x   
            self.rect.width = 10
            self.rect.height = 10

    Из-за этого вызова:
    Wall.create("",GREEN,0,0)
    Потому, что кто-то полез туда, где ничего не понимает.
    self это не просто параметр, а куда более важнее, его не нужно передавать из вне. {self нужен для работы с внутренними переменными класса}

    Какие дальше ошибки посыплются - не знаю, я не ванга, а обычный человек.
    Решение:
    Идти глянуть хотя бы что-такое self и зачем он нужен.
    Заменить вызов метода create класса Wall, на этот Wall.create(GREEN,0,0).
    Ответ написан
    Комментировать