Самые полезные модули Python из стандартной библиотеки? [закрытый]



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



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



какие модули вы бы предложили мне представить, в 1 или 2 часа слот?

660   17  

17 ответов:

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

о math,decimal и datetime и time и re.

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

база данных люди должны услышать о sqlite и json.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ОС и ОС.путь: потому что это основные модули, которые кто-либо потребует написать независимый от платформы код в python и студенты могут переключаться с оболочки скрипта на скрипт python после изучения ОС и ОС.путь.

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

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

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

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

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

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

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

трудно жить без 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
>>>

[mpenning@Bucksnort ~]$ # Bash shell usage
[mpenning@Bucksnort ~]$ # 5 runs with 1000 samples each.
[mpenning@Bucksnort ~]$ 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
[mpenning@Bucksnort ~]$

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

Edit:

Ой, это не "стандартный" модуль per se, но это должны быть, если вы делаете разбор HTML.

Comments

    Ничего не найдено.