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

    st0ne_c0ld
    @st0ne_c0ld
    По исходному условию, можно написать regexp или "стейт машину" с хардкодом содержимого файла, но если содержимое будет меняться - код надо будет переписывать. Ниже вариант проще, но он отличается от исходного условия.

    Если нет ограничения на формат файла и код надо вписывать всегда в однотипные места, можно использовать модуль шаблонов jinja2 либо плейсхолдеры для работы со строками, вида:

    your_new_code="""
        print(123)
        return False
    """
    ...
    updated_text = """
    ...
    class MainApp(App):
        def build(self):
            main_layout = FloatLayout()
            {some_text}
    ...
    """.format(some_text=your_new_code)
    Ответ написан
    4 комментария
  • Как спарсить данные?

    st0ne_c0ld
    @st0ne_c0ld
    special_price = div.find('span', attrs={'class' : 'subcategory-product-item__price_special'}).text
    AttributeError: 'NoneType' object has no attribute 'text'

    А что если div.find не находит эту строку в принципе(т.е. в div в котором проходит поиск её просто нет)?
    Можно сделать, например так:

    def safe_search(tag, attrs):
        x = div.find('span', attrs={'class' : 'subcategory-product-item__price_special'})
        if x is not None:
            return x.text()
        else:
            return ''
    Ответ написан
    1 комментарий
  • Как добавить картинку из sqlite3 в тело письма?

    st0ne_c0ld
    @st0ne_c0ld
    Конструировать письмо руками не обязательно, можно взять модуль email и пример из документации:
    docs.python.org/3/library/email.examples.html

    или попробовать так:

    # your code above...
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.mime.multipart import MIMEMultipart
    msg = MIMEMultipart()
    
    for empl in results:
        subject = "День рождения сотрудника"
        body = "Поздавляем сотрудника " + empl[1] + " " + empl[2] + " с Днем Рождения!"
        attach = results[3]
        msg['Subject'] = subject
        msg['From'] = 'pochta@gmail.com'
        msg['To'] = 'pochta@mail.ru'
        #
        text = MIMEText(body.encode('utf-8').strip())
        msg.attach(text)
        image = MIMEImage(img_data, attach)
        msg.attach(image)
        smtpObj.sendmail(msg['From'],msg['To'],msg.as_string())
    
    smtpObj.quit()
    Ответ написан
    2 комментария