• Как настроить кодировку при сохранении html файла в urllib (python 3.4)?

    adugin
    @adugin Куратор тега Python
    1) Какая кодировка прописана в заголовках meta самой страницы, и также о какой кодировке сообщает сервер?
    2) В какую кодировку всё это сохраняется, и соответствует ли кодировка в meta фактической кодировке?

    Технически просто - если, скажем, страница в utf-8, а надо сохранить в cp1251:
    html = urllib.request.urlopen(url).read().decode('utf-8').encode('cp1251')

    ... и проверить кодировку в meta-заголовке сохранённой страницы.

    str(html) - лишнее, html и так строка.
    Ответ написан
    6 комментариев
  • Как обновлять содержимое страницы, получаемое парсингом другой страницы в Flask?

    Tark
    @Tark
    Pyramid'альный мир
    Вариант первый, не очень хороший:
    from flask import Flask
    import test  # именно так
    
    app = Flask(__name__)
    
    @app.route('/')
    def main_page():
        # постоянно актуальная информация, даже если переменная изменится в другом месте
        return test.text
    
    if __name__ == '__main__':
        app.run()

    Это плохо тем, что работать будет только с одним воркером. То есть если у вас uwsgi, скажем, с двумя процессами, то часть запросов будет попадать на "старое" значение test.text. Если принудительно работать с одним воркером, будет работать правильно.

    Вариант второй, получше: использовать кеш или БД.
    Ответ написан
    8 комментариев
  • Как вставить изображение в буфер обмена windows используя python 3.4?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    from cStringIO import StringIO
    import win32clipboard
    from PIL import Image
    
    def send_to_clipboard(clip_type, data):
        win32clipboard.OpenClipboard()
        win32clipboard.EmptyClipboard()
        win32clipboard.SetClipboardData(clip_type, data)
        win32clipboard.CloseClipboard()
    
    image = Image.open('image.jpg')
    
    output = StringIO()
    image.convert("RGB").save(output, "BMP")
    
    send_to_clipboard(win32clipboard.CF_DIB, output.getvalue())
    Ответ написан
    3 комментария
  • Как получить текст/картинку из буфера обмена windows?

    crazyzubr
    @crazyzubr
    Python backend-developer
    В описании пакета написано же как:

    text = clipboard.paste()  # text will have the content of clipboard


    Кстати там же написано, что этот пакет на самом деле просто импортирует функции из пакета pyperclip
    Ответ написан
    1 комментарий
  • Как искать проекты, использующие определенный модуль?

    @devel787
    Хочется посмотреть готовый пример, чтобы разобраться.

    Возможно, чем-то поможет
    Web Scraping With Scrapy and MongoDB
    Ответ написан
    Комментировать
  • Как искать проекты, использующие определенный модуль?

    un1t
    @un1t
    По коду гитхаб ищет, тыкни по вкладке Code
    https://github.com/search?utf8=%E2%9C%93&q=%22impo...
    Ответ написан
    Комментировать
  • "Запасная" профессия для программиста?

    @slepowl
    учу-верчу python
    При таком раскладе - электрик, электромеханик, монтаж. Или строитель. строить дома\производство, заново или восстанавливать электросети. Самое то.
    Ответ написан
    5 комментариев
  • Как определить входят ли две переменные одновременно в один из 4ех списков или входят в разные?

    @throughtheether
    human after all
    Почему списки diamonds, hearts и spades содержат одинаковые строки? Я не понимаю, в чем проблема перебрать четыре списка и проверить вхождение карт в каждый из них. Пример:
    _flag=False
    for _list in (clubs,diamonds,hearts,spades):
        if first_card in _list and second_card in _list:
            _flag=True
            break

    P.S. это нужно для функции, которая будет циклически проверять совпадение мастей карт.
    Что значит 'циклически'? Сколько ожидается циклов? Почему нельзя реализовать карты в качестве экземпляров специализированного класса или named tuple и напрямую сравнивать атрибуты?
    Ответ написан
    9 комментариев
  • Почему функция не видит переменную?

    @s0L
    Потому что по умолчанию он считает right_answer локальной переменной. В вашей функции добавте строку global right_answer в самом начале
    Ответ написан
    1 комментарий
  • Язык программирования под конкретную задачу + с нуля + хорошая база?

    @vsuhachev
    Мне кажется вы слишком глобальные цели ставите. Программирование контроллеров, 1С, Web, GUI для iOS, Android, PC (Windows? Linux? MacOS?) это обширные области со своей спецификой.

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

    Python, Ruby, JS/CoffeeScript вполне годные кандидаты.

    Java, С# - в принципе тоже

    PHP - категорически не рекомендую, но его стабильно выбирают новички потому что он концептуально простой и популярный.

    Ну и еще из опыта - относитесь к выбору языка программирования как к выбору инструмента под задачу, а не как к единственному выбору на всю жизнь. У программистов считается хорошим тоном неплохо знать 2-3 языка, и поверхностно десяток-другой.
    Ответ написан
    1 комментарий
  • Язык программирования под конкретную задачу + с нуля + хорошая база?

    AMar4enko
    @AMar4enko
    Хоть и жутко прозвучит, но вам, вероятней всего, нужна Java.
    Подойдет для обучения с нуля, далее сможете поднатаскаться в каноническом ООП, опытным путем поймете все must-have паттерны.
    Сможете написать десктопное приложение, сервер веб-приложения, android-приложение.
    Также для веб приложения вам понадобится некоторое знание JavaScript (никоим образом не соотносится с Java), но насколько я понял, это для вас программа "максимум".

    Еще один вариант - JavaScript.
    Веб-приложение на node.js, мобильное приложение на HTML5 с Apache Cordova, десктопное приложение на Node Webkit. Но влезать в него не обладая базовыми знаниями по программированию я вам не рекомендую - отсутствие строгой типизации, ООП как такового, куча скрытого поведения, замыкания на каждом шагу дают чересчур слишком много вариантов неправильной реализации иногда вполне очевидных вещей.

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

    Итог: избавьтесь от иллюзий, что в этот поезд можно вскочить за полгода работы по вечерам и в выходные. Это будет долгая и кропотливая работа.
    Ответ написан
    1 комментарий
  • Язык программирования под конкретную задачу + с нуля + хорошая база?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    На самом деле, можно выбрать JS или Python. В контексте Python'а поставленная первая задача решается на раз два, вот пару советов, которые могут помочь в дальнейшем (естественно, в контексте получения быстрого результата):
    + забейте на классы и красивый код, пишите как можно быстрее, итоговый вариант будет мерзким и ужасным, однако результат не заставит себя ждать
    + используйте мощь Python'а - генераторы, списки (и слайсы), лямбды и много-много сахара
    + начните с pygame: тут не будет красивых менюшек из коробки, однако, что важнее, будет достаточно удобный с точки зрения Python API, и рисование и звук.

    К слову, Python можно относительно легко компилировать в JS, а есть ещё и on-the-fly парсер на JS. Так что сделать web-версию не составит огромного труда.

    Окей, что до ресурсов, то codeacademy, coursera очень хорошие варианты. Ну и официальная документация тоже одна из лучших (по языкам).

    Единственная сложность, так это выбрать двойку или тройку. Советую тройку - с либами в основном всё хорошо, да и разница не настолько колоссальна (в основном это print стал настоящей функцией, когда был невесть чем). Да и забавно - python 2.x очень легко конвертируется в python 3.x подключением пары либ и парой импортов из __future__.

    Теперь о том, как это можно экстраполировать на остальные задачи. Матан совсем не обязательно и легко поднимается по требованию. Было бы не плохо быстро поднять технический английский (дабы понимать термины), хотя здесь проблем совсем не должно быть - сам технический IT-русский на 80% из английского. Программировать контроллеры на Python сложно, но можно. Понимать вэб и 1С-программистов не составит труда, так как в основном они и не программисты.

    Относительно JS могу сказать, что он и простой и сложный одновременно. Задумывался он максимально простым, и отчасти он таким получился. Однако уродцем он получился ещё тем. В этом видео очень интересно показано. И там ещё много таких тонких моментов. Хотя на самом деле, он действительно очень интересен и многое умеет. Да и разработка идёт полным ходом, а браузеры спешно имплементируют новшества.
    Ответ написан
    4 комментария