Подтвердить что ты не робот

Большинство полезных модулей Python из стандартной библиотеки?

Я преподаю класс Python на уровне выпускников в Парижском университете, и студенты должны быть представлены в стандартной библиотеке. Я хочу обсудить с ними некоторые из наиболее важных стандартных модулей.

Какие модули, по вашему мнению, являются абсолютными обязательными? Несмотря на то, что ответы, вероятно, различаются в зависимости от вашей области (веб-программирование, наука и т.д.), Я считаю, что некоторые модули обычно необходимы: math, sys, re, os, os.path, logging,... и возможно: collections, struct,...

Какие модули вы предлагаете представить в 1 или 2-х часовом слоте?

4b9b3361

Ответ 1

Модули для покрытия в 1-2-часовом слоте полностью зависят от интереса вашей аудитории или фокуса. Какие еще занятия они берут? Что они готовы немедленно использовать?

Обязательно укажите math, decimal и datetime и time и re.

Для ИТ-типов, которые будут выполнять файло-ориентированную работу: glob, fnmatch, os, os.path, tempfile и shutil.

Пользователи базы данных должны слышать о sqlite и json.

Имитационная аудитория может захотеть услышать о random.

Веб-разработчики должны слышать о urllib2 с клиентской точки зрения. Также красивый суп и парсер XML по вашему выбору.

Веб-разработчики должны слышать о logging и wsgiref с точки зрения сервера.

Ответ 2

Я бы предложил itertools и functools. Эти модули работают над абстракциями, которые встречаются везде в программировании, поэтому я думаю, что они полезны для изучения. Среди более практичных вещей, xml-модули (xml.dom, xml.sax) могут быть очень полезными.

Ответ 3

Посмотрите PyMOTW (модуль Python недели). Хотя это не строго stdlib, это отличный ресурс очевидных и не столь очевидных камней python stdlib. Более того, он также служит отличной документацией по введенным модулям.

Ответ 4

Я бы выбрал несколько модулей, которые наиболее подходят для обычного пользователя/программиста, выполняющего типичные компьютерные задачи. Таким образом, существует самый большой шанс, что они могут на самом деле использовать python в свое время.

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

Поэтому я бы сказал, что модули: os и os.path, вероятно, являются наиболее важными, а также упоминают glob, fnmatch и shutil. Кроме того, может оказаться очень полезным подпроцесс, поскольку он имеет тенденцию использоваться в вышеупомянутом контексте.

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

Ответ 5

Это немного зависит от того, что они будут делать и на каком уровне они находятся. Некоторые модули, которые я хочу, чтобы кто-то указал мне, когда я начал, следующие:

  • StringIO - остановить их от переопределения, что они будут, если они не обнаружат его.
  • logging - чтобы поместить их на правильный путь, когда дело доходит до отладочных распечаток
  • pickle - чтобы они не пытались использовать XML везде.
  • xml.etree.ElementTree - сохранить их из модели DOM, когда им действительно нужно работать с XML.
  • pprint - сделать вложенные структуры на python менее запугивающими.

Ответ 6

Я бы добавил urllib2 в список.

Ответ 7

Только в один-два часа я бы представил easy_install и PyPI-репозиторий: даже если они не входят в стандартную библиотеку lib, они позволяют устанавливать многие другие внешние модули, и это первое место, где вы можете смотреть, когда вы не можете найти в стандартной библиотеке.

Кроме того, я бы представил numpy, re, doctest/unittest и, возможно, рассол.

Ответ 8

Я просто помню очень практичный модуль: копия.
Я использую deepcopy() от него довольно часто.

Ответ 9

operator, рядом с тем, что уже упоминалось.

Ответ 10

Не забывайте о datetime, weakref, pickle, StringIO, heapq, может быть threading.

И numpy также стоит упомянуть, хотя это не из стандартной библиотеки.

Ответ 11

os и os.path: потому что это основные модули, для которых каждому потребуется писать независимый от платформы код на языке python, и учащиеся могут переключиться с оболочки script на python script после изучения os и os.path.

Ответ 12

Я думаю, что у всех здесь были все важные, кроме sys. Если вы посмотрите на реальный код Python, sys, вероятно, является одним из наиболее часто используемых модулей (обычно из-за sys.version).

Кроме того, это не действительно модуль, но я бы упомянул __future__.

И никто не должен использовать Python, не делая import this.

Ответ 13

Помимо тех, о которых вы упомянули, я нашел особенно полезным подпроцесс и модули sqlite3. Но я бы посоветовал студентам взглянуть на список стандартных модулей библиотеки. Кроме того, из модулей вне стандартной библиотеки я бы назвал numpy (или numarray) и pyparsing.

Ответ 14

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

Конечно, вы, вероятно, захотите коснуться ситуаций, когда вам также не нужно быть такими точными.

Ответ 15

Для студентов-исследователей, редко услышанный, но мощный модуль 'networkx' будет ценным. Но сначала нужно установить его. Этот модуль хорошо документирован: http://networkx.lanl.gov/index.html

Ответ 16

Трудно жить без timeit

>>> # Python shell usage
... import timeit
>>> tt = timeit.Timer("foo = 'time this'", "print 'setup with this arg'")
>>> tt.timeit(number=1000)
setup with this arg
0.00021100044250488281
>>>

[[email protected] ~]$ # Bash shell usage
[[email protected] ~]$ # 5 runs with 1000 samples each.
[[email protected] ~]$ python -m timeit -n 1000 -r 5 -s "print 'setup w/ this arg'" \
    "foo = 'time this'"
setup w/ this arg
setup w/ this arg
setup w/ this arg
setup w/ this arg
setup w/ this arg
1000 loops, best of 5: 0.173 usec per loop
[[email protected] ~]$

Ответ 17

Определенно добавьте BeautifulSoup. Один из лучших (если не самый лучший) HTML-парсер.

Изменить:

К сожалению, это не "стандартный" модуль как таковой, но он должен быть, если вы выполняете разбор HTML.