Ответы пользователя по тегу Python
  • Как изменить переменную в другом скрипте?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Потому что вы не то меняли. У вас есть ссылка на объект в памяти, и вы поменяли ссылку на другой объект в памяти. Память никак не отображается в файл на диске.
    Вам надо в конце открыть файл на диске как текстовый файл для чтения; считать его содержимое в память; найти там нужную строку и заменить её на нужную; открыть файл на запись и сохранить туда новый вариант.
    Ответ написан
  • Для чего используется "@" перед переменными в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Для того, чтобы вы задали себе этот вопрос и открыли для себя пользу учебников. 61a0da3259ddf867054068.jpeg Целая глава посвящена вопросу!
    spoiler
    Эти жулики в роликах про ботов сами этот вопрос изучили, а вас не учат, а заставляют как обезьянок повторять тупые действия. Так вам и надо, неучи.
    Ответ написан
    Комментировать
  • Как с помощью python найти в doc файле значение, определить в какой оно таблице и столбце?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    god_dan63, с помощью парсеров, разумеется. В зависимости от того, что надо разбирать, выберите парсер, изучите его документацию и сделайте программу. Если не заработает, как ожидалось - приносите код и traceback ошибки, тогда будет больше шанс получить полезный ответ.

    В вашем конкретном случае можно использовать bs4 для html варианта либо python-docx для word. Оба позволяют вычленить таблицы и работать с ними. Первый немного более низкоуровневый. В зависимости от вашей квалификации как программиста может быть легче в более гибком, но «сложном» bs4 или несколько более ограниченном, но «простом» python-docx.
    Ответ написан
    8 комментариев
  • Как написать фильтр для вывода в консоль исходя из передаваемого аргумента?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    [print(''.join([i, '\n'])*N, end='') for i in set(genres)]
    Ответ написан
    5 комментариев
  • Как разделить фото через каждые n пикселей?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В простом варианте картинка это список из 100 списков по 100 ячеек, в каждой ячейке вложенного списка находятся три числа типа int8, отражающие яркость по одному из трех цветов (red green blue). Слепить три картинки при условии одинаковой ширины - просто соединить три списка верхнего уровня.
    Потом рубим его банальными срезами с шагом (70 строк, примерно получается 3*70*100 = 2100 пикселей, и получаем набор требуемых кусочков.
    Ответ написан
    Комментировать
  • Как указать относительный путь к файлу через внешнюю папку?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    from pathlib import Path
    print(Path.home())
    print(Path.home().parent)

    Очень рекомендую освоить.
    Особо прикольно Path / Path / Path делать. Просто в строчку.
    Ответ написан
    Комментировать
  • Как правильно будет сделать sha256 хеш?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Это вам может помочь.
    Если не поможет, то вам на freelance.habr.com
    Ответ написан
    Комментировать
  • Как реализовать поиск фраз в тексте по вордлисту?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Натыкал что первое в голову пришло:
    Натыканное
    data = '''Задача организации, в особенности же разбавленное Светлана изрядной долей эмпатии, рациональное мышление обеспечивает широкому кругу (специалистов) Светлана Евгений Маша Игорь
    участие в формировании инновационных методов управления процессами. В своём стремлении улучшить пользовательский опыт мы упускаем, что некоторые особенности внутренней политики могут Светлана Светлана Светлана быть своевременно верифицированы.Задача организации, в особенности же разбавленное Светлана изрядной долей эмпатии, рациональное мышление обеспечивает широкому кругу (специалистов) коля Светлана Евгений Маша Игорь Миша
    участие в формировании инновационных методов управления процессами. В своём стремлении улучшить пользовательский опыт мы упускаем, что некоторые особенности внутренней политики могут Светлана Светлана Светлана быть своевременно верифицированы.Задача организации, в особенности же разбавленное Светлана изрядной долей эмпатии, рациональное мышление обеспечивает широкому кругу (специалистов)  Светлана, Евгений. Маша? Игорь
    Светлана участие в формировании инновационных методов управления процессами. В своём стремлении улучшить пользовательский опыт мы упускаем, что некоторые особенности внутренней политики могут Светлана Светлана Светлана быть своевременно разбавленное Светлана изрядной долей эмпатии, рациональное мышление обеспечивает широкому кругу (специалистов) Светлана Евгений Маша Игорь Светлана Евгений Маша Игорь
    участие в формировании инновационных методов управления процессами. В своём стремлении улучшить пользовательский опыт мы упускаем, что некоторые особенности внутренней политики могут Светлана Светланаверифицированы.'''
    words = ['Маша',
    'Игорь',
    'Светлана',
    'Евгений']
    newdata = [(word.strip(), number) for number, word in enumerate(data.split()) if word in words]
    
    data = [(word[0], newdata[i+1][1]-word[1]) for i, word in enumerate(newdata[:-1])]
    
    newdata = []
    for word in data:
        if word[1] == 1:
            newdata.append((word[0], 1))
        else:
            newdata.append((word[0], 0))
    
    result = []
    results = []
    counter = 0
    another = False
    for i, word in enumerate(newdata):
        if word[1]:
            counter += 1
            result.append(word[0])
            another = True
        elif another or i == len(newdata):
            result.append(word[0])
            another = False
            results.append((counter+1, result))
            result = []
            counter = 0
            
    print(results)
    Ответ написан
  • Как перебрать одно слово в каждой строке?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    data = '''<p><vim-math id="m7859635math1">AB+CD=|</vim-math><math-input id="m7859635MI1" keyboard-skin="junior" keyboard-type="base" strict-check="false">
      <math-input-answer>x+y</math-input-answer>
      <math-input-answer>y+x</math-input-answer>
    </math-input><vim-math id="m7859635math2">|+|</vim-math><math-input id="m7859635MI2" keyboard-skin="junior" keyboard-type="base" strict-check="false">
      <math-input-answer>t+z</math-input-answer>
      <math-input-answer>z+t</math-input-answer>'''
      
    string = '<math-input-answer>'
    results =[]
     
    def get_text(line):
        line = line.split('>')[1]
        line = line.split('<')[0]
        return line
         
    for line in data.splitlines():
        if string in line:
            result = get_text(line)
            results.append(result)
    print(results)

    Тут я сочинил совершенно безобразную функцию парсинга, потому что лень прикручивать к примеру, натыканному на телефоне, bs4 или ещё что-нибудь такое, или сочинять regex…
    вместо неё можно подставить более другую на своё усмотрение.
    Ответ написан
    2 комментария
  • Почему появляется лишний пробел в начале строки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    print(b.strip())
    Ответ написан
    Комментировать
  • Как исправить ошибку?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    journey654645, теперь достаточно, хотя в целом есть над чем поработать.

    Смотрите, что у вас получается по программе:
    у вас запуск исполнения графического интерфейса стартует после вот этих строк:
    x1 = - c + sqrt(c ** 2 + 4 * (d * b)) / 2 * b
    x2 = - c - sqrt(c ** 2 + 4 * (d * b)) / 2 * b

    но переменные, которые используются в этих строках, содержат в момент их выполнения пустые строки. Об этом, собственно, и сообщает программа в traceback.

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

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Полагаю, вместо записи цен в список лучше организовать словарь, в котором под нумерованные ключи писать нормальные цены, а в ключ “promo” писать промо-цену.
    Ответ написан
    1 комментарий
  • Как проверить есть ли элемент на странице в selenium python с помощью if?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Сейчас модно как-то так:
    driver.implicitly_wait(15)
    if bool(driver.find_elements(by="class name", value='blabla')):
        print('Yesss')
    else:
        print('Nooo')

    и без всяких try
    Ответ написан
  • Pandas. Как записать данные на лист excel сохранив его форматирование?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Поиск не помогает? Вот первая ссылка.
    Ответ написан
    Комментировать
  • Почему не удаётся найти путь?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Я бы советовал для начала переместить код в папку в корне диска C без русских букв в path.
    Ну и после этого я бы попытался просто открыть через with open(src_file, “rb”) - оно откроется?
    (Кстати, для работы с путями к файлам рекомендую pathlib2, очень удобная штука. Там и проверка есть на наличие файлов и папок, и конкатенация через /, всё такое).
    Ответ написан
  • Как не получать блокировку от Гугл?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Ясно же, не долбить запросами гугл, отправлять запросы через рандомное время и с разных ip с разными настройками. А как иначе-то? Неужели вы полагаете, что против гугля есть специальный простой и надёжный приемчик, а гугль такой «ну ладно, это же тот самый приёмчик…»
    Ответ написан
    4 комментария
  • Почему выходит ошибка на выводе из qiwi(api-python)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, для удобства отвечающих рекомендую текст приводить текстом, а не скриншотом.
    Во-вторых, ошибка сообщает, что проблема где-то в особенностях API, надо внимательно читать и смотреть, что за ошибка QWPRC-1021 - я подозреваю, система блокирует перевод, т.к. проблема с идентификацией.
    Ответ написан
  • Как мне сделать чтобы у меня работал поиск по xpath?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Возможно, элемент не прогружается к моменту его поиска.
    Попробуйте добавить после определения driver строку driver.implicitly_wait(15)
    это заставит selenium пробовать найти и тыкнуть в ссылку в течение 15 секунд (не ждать, а именно периодически пробовать).
    Также убедитесь, что этот элемент, который вы пытаетесь жмакнуть, в этот момент виден в браузере selenium-а; возможно, надо предварительно поскроллить.

    вдогонку
    Также, если вы не собираетесь серьезно работать с selenium в продакшене, а делаете наколенный проектик для потыкать в кнопки на сайте, то можно попробовать обертки над selenium, сильно упрощающие его синтаксис (например, elementium). В нем, к примеру, у поиска есть метод wait, с ним удобнее.
    Ответ написан
  • Теоретическая программа. Можно ли находить x в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Полагаю, вам может помочь sympy.solvers.
    Ответ написан
    Комментировать
  • Как получить внутренности тега "< a >" при помощи атрибута href?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    def get_content(source):
        soup = BeautifulSoup(source.text, "html.parser")
        Stock = soup.find_all('a', {"href": '/invest/stocks/MMM/'})
                
        Info = []
        item = Stock[0]
        name = item.find('span', {"class": "NameColumn__nameWrapper_177eF"}).get_text()
        Info.append({'Name': name})
        item = Stock[2]
        price = item.find(("span", {"class": "Money-module__money_3h4MT"})).get_text().split('\xa0')[0]
        Info.append({'Price': price})
    
        print(Info)

    Признаться, все эти гирлянды методов ужасны и очень ненадежны.
    Ответ написан
    Комментировать