web-dev-qa-db-ja.com

最も有用なPython標準ライブラリのモジュール?

私は大学院レベルの講義をしていますPythonクラスで、学生は標準ライブラリを紹介する必要があります。最も重要な標準モジュールのいくつかについて彼らと話し合いたいです。

絶対に必要なモジュールは何だと思いますか?おそらくあなたの分野(Webプログラミング、科学など)によって応答は異なりますが、mathsysreosos.pathlogging、…そして多分:collectionsstruct、…

1時間または2時間のスロットで、どのモジュールを提示することをお勧めしますか?

56
Eric O Lebigot

1〜2時間のスロットでカバーするモジュールは、視聴者の興味や焦点に完全に依存します。彼らは他にどのようなクラスを取っていますか?彼らはすぐに利用するために何を準備していますか?

必ずmathdecimaldatetimetimereについて言及してください。

ファイル指向の作業を行うITタイプの場合:globfnmatchosos.pathtempfileshutil

データベースの人々はsqlitejsonについて聞く必要があります。

シミュレーションの聴衆はrandomについて聞きたいかもしれません。

Web開発者は、クライアントの観点からurllib2について聞く必要があります。また、Beautiful Soupとお好みのXMLパーサー。

Web開発者は、サーバーの観点からloggingおよびwsgirefについて聞く必要があります。

41
S.Lott

itertoolsfunctoolsを提供します。これらのモジュールは、プログラミングのいたるところにある抽象化で動作するため、学習に役立つと思います。より実用的なものの中で、xmlモジュール(xml.domxml.sax)は非常に便利です。

32
Rorick

PyMOTW (今週のPythonモジュール)をご覧ください。厳密にはstdlibではありませんが、python stdlib。の明らかでそれほど明確ではない宝石の優れたリソースです。さらに、導入されたモジュールの優れたドキュメントとしても機能します。

18

典型的なコンピュータータスクを実行する典型的なコンピューターユーザー/プログラマーに最も意味のあるいくつかのモジュールを選びます。そうすれば、彼らが実際にse pythonを自分の時間に使う可能性が最も高い可能性があります。

私の意見では、ほとんどの人が実行する可能性が高い操作はファイル操作です。たとえば、ディレクトリ内のすべてのファイルを調べて、それに何らかのアクションを実行します。

したがって、モジュールは次のようになります:osおよびos.pathはおそらく最も重要であり、またglob、fnmatch and shutilについても言及します。また、subprocessは、上記のコンテキストで使用される傾向があるため、非常に役立つ場合もあります。

最後に、私はoptparseを使用します。これにより、それらは非常に迅速に使用可能でプログラマーフレンドリーなプログラムになり、他の人が使用したいプログラムを実際に作成することも期待できます。

7
Edan Maor

それは彼らが何をするか、そして彼らがどんなレベルかによって少し異なります。私が始めたときに誰かが私に指摘してほしいいくつかのモジュールは次のとおりです:

  • StringIO-彼らがそれを再実装するのを止めるため、彼らがそれを発見しなかった場合にそうするでしょう。
  • ロギング-プリントアウトのデバッグに関して、それらを正しいパスに置く
  • pickle-どこでもXMLを使用しようとするのを防ぐため。
  • xml.etree.ElementTree-実際にXMLで作業する必要があるときに、DOMモデルからそれらを保存するため。
  • pprint-pythonでネストされた構造を作成することにより、威圧感を軽減します。
6
Mattias Nilsson

私は非常に実用的なモジュールを覚えています:コピー。
私はdeepcopy()を頻繁に使用しています。

6
lukmac

1〜2時間のスロットで easy_installPyPIリポジトリ を紹介します。標準のライブラリにない場合でも、他の多くの外部をインストールできます。モジュール、そしてそれはあなたが標準のlibで見つけることができないときに調べる最初の場所です。

それとは別に、numpy、re、doctest/unittest、そしておそらくpickleを紹介します。

5
dalloliogm

リストにurllib2を追加します。

5
Bernd

operator、すでに述べたものの隣。

4

osとos.path:コアモジュールであり、プラットフォームに依存しないコードをpythonで記述する必要があるため、学生はシェルスクリプトからpythonに切り替えることができます。 osとos.pathを学習した後のスクリプト。

3

Datetime、weakref、pickle、StringIO、heapqがスレッド化している可能性があることを忘れないでください。

Numpyについても言及する価値がありますが、標準ライブラリからのものではありません。

3
abbot

sysを除いて、ここの誰もが重要なものをすべて手に入れたと思います。実際のPython=コードを見ると、sysはおそらく最も一般的に使用されているモジュールの1つです(通常、sys.version)。

また、実際にはモジュールではありませんが、__future__

そして、誰もPythonを使わずにimport this

2
asmeurer

理系の学生にとって、めったに聞こえないが強力なモジュール「networkx」は価値があります。ただし、最初にインストールする必要があります。このモジュールは十分に文書化されています: http://networkx.lanl.gov/index.html

1
lukmac

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 ~]$
1
Mike Pennington

あなたが言及したものとは別に、私はサブプロセスとsqlite3モジュールが特に便利だと感じました。ただし、標準ライブラリモジュール自体のリストを確認することを生徒に勧めます。また、標準ライブラリ外のモジュールから、numpy(またはnumarray)とpyparsingについて言及します。

1
J S

decimal モジュールに重点を置きます。彼らがプログラミングの初心者である場合、彼らは確かに 浮動小数点の精度 の影響を認識しません。 decimalモジュールは、いくつかの数学演算を通じて正確な小数精度を保持する必要がある通貨またはその他の単位を操作する場合に非常に役立ちます。

もちろん、できない場合も同様に正確である必要がある状況に触れたいと思うでしょう。

1
Mark Rushakoff