pytho****@googl*****
pytho****@googl*****
2011年 11月 5日 (土) 22:31:00 JST
Revision: 670e2935e07d Author: Naoki INADA <inada****@klab*****> Date: Sat Nov 5 06:29:59 2011 Log: Update 2.7.2: ast, csv, select http://code.google.com/p/python-doc-ja/source/detail?r=670e2935e07d Modified: /library/ast.rst /library/csv.rst /library/select.rst ======================================= --- /library/ast.rst Tue Mar 15 12:59:43 2011 +++ /library/ast.rst Sat Nov 5 06:29:59 2011 @@ -24,7 +24,12 @@ 抽象構文木は組み込み関数 :func:`compile` を使って Python コード・オブジェク トにコンパイルすることができます。 -ノード・クラス +.. seealso:: + + 最新バージョンの `ast module Python source code + <http://svn.python.org/view/python/branches/release27-maint/Lib/ast.py?view=markup>`_ + +Node クラス -------------- .. class:: AST @@ -127,10 +132,10 @@ ノード・クラスの他に、 :mod:`ast` モジュールは以下のような抽象構文木をトラ バースするためのユーティリティ関数やクラスも定義しています。 -.. function:: parse(expr, filename='<unknown>', mode='exec') - - 式を解析して AST ノードにします。 - ``compile(expr, filename, mode, ast.PyCF_ONLY_AST)`` と等価です。 +.. function:: parse(source, filename='<unknown>', mode='exec') + + *source* を解析して AST ノードにします。 + ``compile(source, filename, mode, ast.PyCF_ONLY_AST)`` と等価です。 .. function:: literal_eval(node_or_string) @@ -193,7 +198,7 @@ .. function:: walk(node) - *node* の全ての子ノードを再帰的に yield します。 + *node* の全ての子孫ノード(*node* 自体を含む)を再帰的に yield します。 順番は決められていません。 この関数はノードをその場で変更するだけで文脈を気にしないような場合に便利 です。 ======================================= --- /library/csv.rst Sat Oct 8 02:56:26 2011 +++ /library/csv.rst Sat Nov 5 06:29:59 2011 @@ -402,6 +402,15 @@ writer で使われる表現形式の読み取り専用の記述です。 +DictWriter のオブジェクトは以下の public メソッドを持っています。 + +.. method:: DictWriter.writeheader() + + (コンストラクタで指定された)フィールド名の行を出力します。 + + .. versionadded:: 2.7 + + .. _csv-examples: @@ -411,41 +420,44 @@ 最も簡単な CSV ファイル読み込みの例です:: import csv - reader = csv.reader(file("some.csv", "rb")) - for row in reader: - print row + with open('some.csv', 'rb') as f: + reader = csv.reader(f) + for row in reader: + print row 別の書式での読み込み:: import csv - reader = csv.reader(open("passwd", "rb"), delimiter=':', quoting=csv.QUOTE_NONE) - for row in reader: - print row + with open('passwd', 'rb') as f: + reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE) + for row in reader: + print row 上に対して、単純な書き込みのプログラム例は以下のようになります。 :: import csv - writer = csv.writer(file("some.csv", "wb")) - writer.writerows(someiterable) + with open('some.csv', 'wb') as f: + writer = csv.writer(f) + writer.writerows(someiterable) 新しい表現形式の登録:: import csv - csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE) - - reader = csv.reader(open("passwd", "rb"), 'unixpwd') + with open('passwd', 'rb') as f: + reader = csv.reader(f, 'unixpwd') もう少し手の込んだ reader の使い方 --- エラーを捉えてレポートします。 :: import csv, sys - filename = "some.csv" - reader = csv.reader(open(filename, "rb")) - try: - for row in reader: - print row - except csv.Error, e: - sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e)) + filename = 'some.csv' + with open(filename, 'rb') as f: + reader = csv.reader(f) + try: + for row in reader: + print row + except csv.Error, e: + sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e)) このモジュールは文字列の解析は直接サポートしませんが、簡単にできます。 :: ======================================= --- /library/select.rst Sat Apr 23 04:11:26 2011 +++ /library/select.rst Sat Nov 5 06:29:59 2011 @@ -164,6 +164,16 @@ Windows では、背後の :cfunc:`select` 関数は WinSock ライブラリで提供 されており、 WinSock によって生成されたものではないファイル記述子を扱うことができ ないのです。 +.. attribute:: select.PIPE_BUF + + :func:`select` や :func:`poll` などのインタフェースにより書き込み可能に なったと + 報告されたファイルは、 :const:`PIPE_BUF` バイトまではブロックしないで書 き込み + できることが保証されます。 + この値は POSIX では最低でも 512 であることが保証されています。 + + 利用可能な環境: Unix + + .. versionadded:: 2.7 .. Edge and Level Trigger Polling (epoll) Objects @@ -176,36 +186,6 @@ *eventmask* - .. +-----------------------+-----------------------------------------------+ - .. | Constant | Meaning | - .. +=======================+===============================================+ - .. | :const:`EPOLLIN` | Available for read | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLOUT` | Available for write | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLPRI` | Urgent data for read | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLERR` | Error condition happened on the assoc. fd | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLHUP` | Hang up happened on the assoc. fd | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLET` | Set Edge Trigger behavior, the default is | - .. | | Level Trigger behavior | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLONESHOT` | Set one-shot behavior. After one event is | - .. | | pulled out, the fd is internally disabled | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLRDNORM` | ??? | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLRDBAND` | ??? | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLWRNORM` | ??? | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLWRBAND` | ??? | - .. +-----------------------+-----------------------------------------------+ - .. | :const:`EPOLLMSG` | ??? | - .. +-----------------------+-----------------------------------------------+ - +-----------------------+-----------------------------------------------+ | 定数 | 意味 | +=======================+===============================================+ @@ -225,15 +205,15 @@ | :const:`EPOLLONESHOT` | 1ショット動作に設定する。1回イベントが取り出 | | | されたら、その fd が内部で無効になる。 | +-----------------------+-----------------------------------------------+ - | :const:`EPOLLRDNORM` | ??? | + | :const:`EPOLLRDNORM` | :const:`EPOLLIN` と同じ | +-----------------------+-----------------------------------------------+ - | :const:`EPOLLRDBAND` | ??? | + | :const:`EPOLLRDBAND` | priority data band を読み込める | +-----------------------+-----------------------------------------------+ - | :const:`EPOLLWRNORM` | ??? | + | :const:`EPOLLWRNORM` | :const:`EPOLLOUT` と同じ | +-----------------------+-----------------------------------------------+ - | :const:`EPOLLWRBAND` | ??? | + | :const:`EPOLLWRBAND` | priority data に書き込みできる | +-----------------------+-----------------------------------------------+ - | :const:`EPOLLMSG` | ??? | + | :const:`EPOLLMSG` | 無視される | +-----------------------+-----------------------------------------------+ @@ -380,13 +360,8 @@ .. method:: poll.modify(fd, eventmask) - .. Modifies an already registered fd. This has the same effect as - .. :meth:`register(fd, eventmask)`. Attempting to modify a file descriptor - .. that was never registered causes an :exc:`IOError` exception with errno - .. :const:`ENOENT` to be raised. - 登録されているファイル記述子 *fd* を変更する。 - これは、 :meth:`register(fd, eventmask)` と同じ効果を持ちます。 + これは、 ``register(fd, eventmask)`` と同じ効果を持ちます。 登録されていないファイル記述子に対してこのメソッドを呼び出すと、 errno :const:`ENOENT` で :exc:`IOError` 例外が発生します。