Внимание на urllib2
для этого, это работает вполне хорошо. Не смешивайте с httplib
, это не API верхнего уровня.
то, Что Вы отмечаете, - то, что urllib2
не следует за перенаправлением.
необходимо свернуться в экземпляре HTTPRedirectHandler
, который будет ловить и следовать за перенаправлениями.
Далее, можно хотеть разделить значение по умолчанию на подклассы HTTPRedirectHandler
для получения информации, которую Вы тогда проверите как часть Вашего поблочного тестирования.
cookie_handler= urllib2.HTTPCookieProcessor( self.cookies )
redirect_handler= HTTPRedirectHandler()
opener = urllib2.build_opener(redirect_handler,cookie_handler)
можно тогда использовать этот opener
объект к POST и ДОБРАТЬСЯ, обработав перенаправления и cookie правильно.
можно хотеть добавить собственный подкласс HTTPHandler
, чтобы получить и зарегистрировать различные коды ошибки, также.
Модули, которые нужно охватить в 1-2-часовой интервал, полностью зависят от интересов или направленности вашей аудитории. Какие еще уроки они посещают? Что они готовы использовать немедленно?
Не забудьте упомянуть math
, decimal
и datetime
и time
и re
.
Для ИТ-специалистов, которые будут выполнять работу с файлами: glob
, fnmatch
, os
, os.path
, tempfile
и shutil
.
Пользователи баз данных должны знать о sqlite
и json
.
] Аудитория моделирования может захотеть услышать о random
.
Веб-разработчики должны услышать о urllib2
с точки зрения клиента.
Я бы поставил некоторый вес на десятичный модуль
. Если они новички в программировании, они наверняка не будут знать о последствиях точности с плавающей запятой . Модуль decimal
чрезвычайно полезен при работе с валютой или другими единицами, которые должны сохранять точную десятичную точность с помощью нескольких математических операций.
Конечно, вы, вероятно, захотите коснуться ситуаций, когда вы тоже не обязательно должна быть такой точной.
os и os.path: потому что это основные модули, которые потребуются любому для написания независимого от платформы кода на python, и студенты могут переключаться со сценария оболочки на сценарий python после изучения ОС и ОС. путь.
Помимо упомянутых вами, я нашел особенно полезными модули subprocess и sqlite3. Но я бы обязательно посоветовал студентам взглянуть на сам список стандартных библиотечных модулей. Кроме того, из модулей, не входящих в стандартную библиотеку, я бы упомянул numpy (или numarray) и pyparsing.
Не забывайте о datetime, weakref, pickle, StringIO, heapq, может быть многопоточным.
И numpy также заслуживает упоминания, хотя он не из стандартной библиотеки.
Это немного зависит от того, что они будут делать и на каком уровне они находятся. Некоторые модули, на которые я бы хотел, чтобы кто-то указал мне, когда я начинал, следующие:
Я бы выбрал несколько модулей, которые имеют наибольший смысл для обычного пользователя / программиста, выполняющего типичные компьютерные задачи. Таким образом, существует наибольшая вероятность того, что они действительно могут использовать python в свое свободное время.
На мой взгляд, большинство людей, скорее всего, выполнят операции с файлами, например, просмотр каждого файла в каталог и выполнить с ним какое-то действие.
Поэтому я бы сказал, что модули: os и os.path , вероятно, самые важные, а также упомянули glob, fnmatch и shutil ]. Кроме того, подпроцесс тоже может быть очень полезным, поскольку он имеет тенденцию использоваться в вышеупомянутом контексте.
Наконец, я бы выбрал optparse , так как он их получит очень быстро сделать пригодным для использования,
Взгляните на PyMOTW (Python-модуль недели). Хотя это не строго stdlib, это отличный ресурс очевидных и не столь очевидных жемчужин stdlib python. Более того, он также служит отличной документацией по введенным модулям.
Всего за один-два часа я бы представил easy_install и репозиторий PyPI : даже если их нет в стандартной библиотеке, они позволяют вам установить множество других внешних модулей, и это первое место, где искать, если вы не можете найти в стандартной библиотеке.
Кроме того, я бы представил numpy, re, doctest / unittest и, возможно, рассол.
Я бы предложил itertools
и functools
. Эти модули работают с абстракциями, которые встречаются повсюду в программировании, поэтому я думаю, что их полезно изучать. Среди более практических вещей могут быть очень полезны модули xml ( xml.dom
, xml.sax
).
Я думаю, что все здесь получили все важные сущности, кроме sys
. Если вы посмотрите на реальный код Python, sys
, вероятно, один из наиболее часто используемых модулей (обычно из-за sys.version
).
Также, это не совсем модуль, но я бы упомянул __future__
.
И никто не должен использовать Python, не сделав import this
.