pytho****@googl*****
pytho****@googl*****
2011年 3月 6日 (日) 22:41:01 JST
Revision: 5db0f0f4cd Author: MATSUI Tetsushi <matsu****@gmail*****> Date: Sun Mar 6 05:39:07 2011 Log: 2.6.6 update: library/os http://code.google.com/p/python-doc-ja/source/detail?r=5db0f0f4cd Modified: /library/os.rst ======================================= --- /library/os.rst Sun Nov 28 02:19:08 2010 +++ /library/os.rst Sun Mar 6 05:39:07 2011 @@ -15,10 +15,12 @@ このモジュールは、OS依存の機能をポータブルな方法で利用する方法を提供しま す。 単純なファイルの読み書きについては、 :func:`open` を参照してください。 パス操作については、 :mod:`os.path` モジュールを参照してください。 -コマンドラインに与えられた全てのファイルから行を読み込んでいくに は、 :mod:`fileinput` -モジュールを参照してください。 -一時ファイルや一時ディレクトリの作成については、:mod:`tempfile` モジュール を参照してください。 -こうレベルなファイルとディレクトリの操作については、 :mod:`shutil` モジュー ルを参照してください。 +コマンドラインに与えられた全てのファイルから行を読み込んでいくには、 +:mod:`fileinput` モジュールを参照してください。 +一時ファイルや一時ディレクトリの作成については、 +:mod:`tempfile` モジュールを参照してください。 +高レベルなファイルとディレクトリの操作については、 +:mod:`shutil` モジュールを参照してください。 .. The design of all built-in operating system dependent modules of Python is such that as long as the same functionality is available, it uses the same interface; @@ -26,18 +28,26 @@ *path* in the same format (which happens to have originated with the POSIX interface). -Pythonの、全てのOS依存モジュールの設計方針は、可能な限り同一のインタフェー スで同一の機能を利用できるようにする、というものです。 -例えば、 ``os.stat(path)`` は *path* に関する stat 情報を、(POSIXを元にした )同じフォーマットで返します。 - -特定のオペレーティングシステム固有の拡張も :mod:`os` を介して利用することが できますが、これらの利用はもちろん、可搬性を脅かします! - -.. note:: - - .. If not separately noted, all functions that claim "Availability: Unix" are - supported on Mac OS X, which builds on a Unix core. - - 特に記述がない場合、「利用できる環境: Unix」と書かれている関数は、 - Unixをコアにしている Mac OS X でも利用することができます。 +利用可能性に関する注意: + +* Pythonの、全てのOS依存モジュールの設計方針は、 + 可能な限り同一のインタフェースで同一の機能を利用できるようにする、という ものです。 + 例えば、 ``os.stat(path)`` は *path* に関する stat 情報を、 + (POSIXを元にした)同じフォーマットで返します。 + +* 特定のオペレーティングシステム固有の拡張も :mod:`os` を介して利用すること ができますが、 + これらの利用はもちろん、可搬性を脅かします! + +* 「利用できる環境: Unix」の意味はこの関数が Unix システムにあることが多い + ということです。 + このことは特定の OS における存在を主張するものではありません。 + +* 特に記述がない場合、「利用できる環境: Unix」と書かれている関数は、 + Unix をコアにしている Mac OS X でも利用することができます。 + +.. Availability notes get their own line and occur at the end of the function +.. documentation. +.. 利用可能性に関する注意は各関数の説明の最後に別に一行を割いて書きます。 .. note:: @@ -58,8 +68,10 @@ .. data:: name - import されているオペレーティング・システム依存モジュールの名前です。現 在次の名前が登録されています: ``'posix'``, ``'nt'``, - ``'dos'``, ``'mac'``, ``'os2'``, ``'ce'``, ``'java'``, ``'riscos'`` 。 + import されているオペレーティング・システム依存モジュールの名前です。 + 現在次の名前が登録されています: ``'posix'``, ``'nt'``, + ``'mac'``, ``'os2'``, ``'ce'``, ``'java'``, ``'riscos'`` 。 + .. _os-procinfo: @@ -115,12 +127,16 @@ .. function:: ctermid() - プロセスの制御端末に対応するファイル名を返します。利用できる環境: Unix。 + プロセスの制御端末に対応するファイル名を返します。 + + 利用できる環境: Unix。 .. function:: getegid() - 現在のプロセスの実効(effective)実行グループ id を返します。この id は現 在のプロセスで実行されているファイルの "set id" ビットに対応します。 + 現在のプロセスの実効(effective)グループ id を返します。 + この id は現在のプロセスで実行されているファイルの "set id" ビットに対応 します。 + 利用できる環境: Unix。 @@ -128,142 +144,206 @@ .. index:: single: user; effective id - 現在のプロセスの実効(effective)実行ユーザ id を返します。利用できる環 境: Unix。 + 現在のプロセスの実効(effective)ユーザ id を返します。 + + 利用できる環境: Unix。 .. function:: getgid() .. index:: single: process; group - 現在のプロセスの実際のグループ id を返します。利用できる環境: Unix。 + 現在のプロセスの実際のグループ id を返します。 + + 利用できる環境: Unix。 .. function:: getgroups() - 現在のプロセスに関連づけられた従属グループ id のリストを返します。利用で きる環境: Unix。 + 現在のプロセスに関連づけられた従属グループ id のリストを返します。 + + 利用できる環境: Unix。 .. function:: getlogin() - 現在のプロセスの制御端末にログインしているユーザ名を返します。ほとんどの 場合、ユーザが誰かを知りたいときには環境変数 :envvar:`LOGNAME` - を、現在の実効user idのユーザ名を知りたいときには ``pwd.getpwuid(os.getuid())[0]`` を使うほうが便利です。 + 現在のプロセスの制御端末にログインしているユーザ名を返します。 + ほとんどの場合、ユーザが誰かを知りたいときには環境変 数 :envvar:`LOGNAME` を、 + 現在の実効ユーザ id のユーザ名を知りたいときには + ``pwd.getpwuid(os.getuid())[0]`` を使うほうが便利です。 + 利用できる環境: Unix。 +.. function:: getpgid(pid) + + プロセス id *pid* のプロセスのプロセス・グループ id を返します。 + もし *pid* が 0 ならば、現在のプロセスのプロセス・グループ id を返しま す。 + + 利用できる環境: Unix。 + + .. versionadded:: 2.3 + + .. function:: getpgrp() .. index:: single: process; group - 現在のプロセス・グループの id を返します。利用できる環境: Unix。 + 現在のプロセス・グループの id を返します。 + + 利用できる環境: Unix。 .. function:: getpid() .. index:: single: process; id - 現在のプロセス id を返します。利用できる環境: Unix、 Windows。 + 現在のプロセス id を返します。 + + 利用できる環境: Unix、 Windows。 .. function:: getppid() .. index:: single: process; id of parent - 親プロセスの id を返します。利用できる環境: Unix。 + 親プロセスの id を返します。 + + 利用できる環境: Unix。 .. function:: getuid() .. index:: single: user; id - 現在のプロセスのユーザ id を返します。利用できる環境: Unix。 + 現在のプロセスのユーザ id を返します。 + + 利用できる環境: Unix。 .. function:: getenv(varname[, value]) - 環境変数 *varname* が存在する場合にはその値を返し、存在しない場合には *value* を返します。 *value* のデフォルト値は - ``None`` です。利用できる環境: Unix互換環境、Windows。 + 環境変数 *varname* が存在する場合にはその値を返し、 + 存在しない場合には *value* を返します。 + *value* のデフォルト値は ``None`` です。 + + 利用できる環境: 主な Unix 互換環境、Windows。 .. function:: putenv(varname, value) .. index:: single: environment variables; setting - *varname* と名づけられた環境変数の値を文字列 *value* に設定します。この ような環境変数への変更は、 :func:`os.system`, - :func:`popen` , :func:`fork` および :func:`execv` により起動された子プ ロセスに影響します。利用できる環境: - 主な Unix互換環境、Windows。 + *varname* と名づけられた環境変数の値を文字列 *value* に設定します。 + このような環境変数への変更は、 :func:`os.system`, + :func:`popen` , :func:`fork` および :func:`execv` + により起動された子プロセスに影響します。 + + 利用できる環境: 主な Unix 互換環境、Windows。 .. note:: - FreeBSD と Mac OS X を含むいつくかのプラットフォームでは、 ``environ`` の値を変更するとメモリリークの原因になる場合があります。 + FreeBSD と Mac OS X を含むいつくかのプラットフォームでは、 + ``environ`` の値を変更するとメモリリークの原因になる場合があります。 システムの putenv に関するドキュメントを参照してください。 - :func:`putenv` がサポートされている場合、 ``os.environ`` の要素に対する 代入を行うと自動的に :func:`putenv` - を呼び出します; しかし、 :func:`putenv` の呼び出しは ``os.environ`` を 更新しないので、実際には ``os.environ`` - の要素に代入する方が望ましい操作です。 + :func:`putenv` がサポートされている場合、 + ``os.environ`` の要素に対する代入を行うと自動的に :func:`putenv` + を呼び出します; + しかし、 :func:`putenv` の呼び出しは ``os.environ`` を更新しないので、 + 実際には ``os.environ`` の要素に代入する方が望ましい操作です。 .. function:: setegid(egid) - 現在のプロセスに有効なグループIDをセットします。利用できる環境: Unix。 + 現在のプロセスに実効グループ id をセットします。 + + 利用できる環境: Unix。 .. function:: seteuid(euid) - 現在のプロセスに有効なユーザIDをセットします。利用できる環境: Unix。 + 現在のプロセスに実効ユーザ id をセットします。 + + 利用できる環境: Unix。 .. function:: setgid(gid) - 現在のプロセスにグループ id をセットします。利用できる環境: Unix。 + 現在のプロセスにグループ id をセットします。 + + 利用できる環境: Unix。 .. function:: setgroups(groups) - 現在のグループに関連付けられた従属グループ id のリストを *groups* に設定 します。 *groups* はシーケンス型でなくてはならず、 - 各要素はグループを特定する整数でなくてはなりません。この操作は通常、スー パユーザしか利用できません。利用できる環境: Unix。 + 現在のグループに関連付けられた従属グループ id のリストを *groups* に設定 します。 + *groups* はシーケンス型でなくてはならず、 + 各要素はグループを特定する整数でなくてはなりません。 + この操作は通常、スーパユーザしか利用できません。 + + 利用できる環境: Unix。 .. versionadded:: 2.2 .. function:: setpgrp() - システムコール :cfunc:`setpgrp` または :cfunc:`setpgrp(0, 0)` のどちらか のバージョンのうち、 (実装されていれば) - 実装されている方を呼び出します。機能については Unix マニュアルを参照して ください。利用できる環境: Unix + システムコール :cfunc:`setpgrp` または :cfunc:`setpgrp(0, 0)` + のどちらかのバージョンのうち、 (実装されていれば) + 実装されている方を呼び出します。 + 機能については Unix マニュアルを参照してください。 + + 利用できる環境: Unix .. function:: setpgid(pid, pgrp) - システムコール :cfunc:`setpgid` を呼び出して、 *pid* の id をもつプロセ スのプロセスグループ id を *pgrp* に設定します。 + システムコール :cfunc:`setpgid` を呼び出して、 + *pid* の id をもつプロセスのプロセスグループ id を *pgrp* に設定します。 + 利用できる環境: Unix .. function:: setreuid(ruid, euid) - 現在のプロセスに対して実際のユーザ id および実行ユーザ id を設定します。 利用できる環境: Unix + 現在のプロセスに対して実際のユーザ id および実効ユーザ id を設定します。 + + 利用できる環境: Unix .. function:: setregid(rgid, egid) - 現在のプロセスに対して実際のグループ id および実行ユーザ id を設定しま す。利用できる環境: Unix + 現在のプロセスに対して実際のグループ id および実効ユーザ id を設定しま す。 + + 利用できる環境: Unix .. function:: getsid(pid) - システムコール :cfunc:`getsid` を呼び出します。機能については Unix マニ ュアルを参照してください。利用できる環境: Unix。 + システムコール :cfunc:`getsid` を呼び出します。 + 機能については Unix マニュアルを参照してください。 + + 利用できる環境: Unix。 .. versionadded:: 2.4 .. function:: setsid() - システムコール :cfunc:`setsid` を呼び出します。機能については Unix マニ ュアルを参照してください。利用できる環境: Unix + システムコール :cfunc:`setsid` を呼び出します。 + 機能については Unix マニュアルを参照してください。 + + 利用できる環境: Unix .. function:: setuid(uid) .. index:: single: user; id, setting - 現在のプロセスのユーザ id を設定します。利用できる環境: Unix + 現在のプロセスのユーザ id を設定します。 + + 利用できる環境: Unix .. placed in this section since it relates to errno.... a little weak @@ -278,7 +358,9 @@ .. function:: umask(mask) - 現在の数値 umask を設定し、以前の umask 値を返します。利用できる環境: Unix、Windows + 現在の数値 umask を設定し、以前の umask 値を返します。 + + 利用できる環境: Unix、Windows .. function:: uname() @@ -287,23 +369,32 @@ single: gethostname() (in module socket) single: gethostbyaddr() (in module socket) - 現在のオペレーティングシステムを特定する情報の入った 5 要素のタプルを返 します。このタプルには 5 つの文字列: ``(sysname, nodename, - release, version, machine)`` が入っています。システムによっては、ノード 名を 8 文字、または先頭の要素だけに切り詰めます; - ホスト名を取得する方法としては、 :func:`socket.gethostname` を使う方が よいでしょう、あるいは - ``socket.gethostbyaddr(socket.gethostname())`` でもかまいません。利用で きる環境: Unix互換環境 + 現在のオペレーティングシステムを特定する情報の入った 5 要素のタプルを返 します。 + このタプルには 5 つの文字列: ``(sysname, nodename, release, version, machine)`` + が入っています。 + システムによっては、ノード名を 8 文字、または先頭の要素だけに切り詰めま す; + ホスト名を取得する方法としては、 :func:`socket.gethostname` + を使う方がよいでしょう、あるいは + ``socket.gethostbyaddr(socket.gethostname())`` でもかまいません。 + + 利用できる環境: Unix互換環境 .. function:: unsetenv(varname) .. index:: single: environment variables; deleting - *varname* という名前の環境変数を取り消します。このような環境の変化 は :func:`os.system`, :func:`popen` または - :func:`fork` と :func:`execv` で開始されるサブプロセスに影響を与えます。 利用できる環境: ほとんどの - Unix互換環境、Windows - - :func:`unsetenv` がサポートされている時には ``os.environ`` のアイテムの 削除が対応する :func:`unsetenv` - の呼び出しに自動的に翻訳されます。しかし、 :func:`unsetenv` の呼び出し は ``os.environ`` を更新しませんので、むしろ - ``os.environ`` のアイテムを削除する方が好ましい方法です。 + *varname* という名前の環境変数を取り消します。 + このような環境の変化は :func:`os.system`, :func:`popen` または + :func:`fork` と :func:`execv` で開始されるサブプロセスに影響を与えます。 + + 利用できる環境: ほとんどの Unix 互換環境、Windows + + :func:`unsetenv` がサポートされている時には + ``os.environ`` のアイテムの削除が対応する :func:`unsetenv` + の呼び出しに自動的に翻訳されます。 + しかし、 :func:`unsetenv` の呼び出しは ``os.environ`` を更新しませんの で、 + むしろ ``os.environ`` のアイテムを削除する方が好ましい方法です。 .. _os-newstreams: @@ -318,44 +409,59 @@ .. index:: single: I/O control; buffering - ファイル記述子 *fd* に接続している、開かれたファイルオブジェクトを返しま す。引数 *mode* および *bufsize* は、組み込み関数 - :func:`open` における対応する引数と同じ意味を持ちます。利用できる環境: Unix、Windows + ファイル記述子 *fd* に接続している、開かれたファイルオブジェクトを返しま す。 + 引数 *mode* および *bufsize* は、組み込み関数 + :func:`open` における対応する引数と同じ意味を持ちます。 + + 利用できる環境: Unix、Windows .. versionchanged:: 2.3 - 引数 *mode* は、指定されるならば、 ``'r'``, ``'w'``, ``'a'`` のいずれ かの文字で始まらなければなりません。そうでなければ - :exc:`ValueError` が送出されます. + 引数 *mode* は、指定されるならば、 + ``'r'``, ``'w'``, ``'a'`` のいずれかの文字で始まらなければなりませ ん。 + そうでなければ :exc:`ValueError` が送出されます. .. versionchanged:: 2.5 - Unixでは、引数 *mode* が ``'a'`` で始まる時には *O_APPEND* フラグがフ ァイル記述子に設定されます。 + Unixでは、引数 *mode* が ``'a'`` で始まる時には + *O_APPEND* フラグがファイル記述子に設定されます。 (ほとんどのプラットフォームで :cfunc:`fdopen` 実装が既に行なっている ことです). .. function:: popen(command[, mode[, bufsize]]) - *command* への、または *command* からのパイプ入出力を開きます。戻り値は パイプに接続されている開かれたファイルオブジェクトで、 - *mode* が ``'r'`` (標準の設定です) または ``'w'`` かによって読み出しまた は書き込みを行うことができます。引数 *bufsize* - は、組み込み関数 :func:`open` における対応する引数と同じ意味を持ちま す。 *command* の終了ステータス (:func:`wait` - で指定された書式でコード化されています) は、 :meth:`close` メソッドの戻 り値として取得することができます。例外は終了ステータスがゼロ + *command* への、または *command* からのパイプ入出力を開きます。 + 戻り値はパイプに接続されている開かれたファイルオブジェクトで、 + *mode* が ``'r'`` (標準の設定です) または ``'w'`` かによって + 読み出しまたは書き込みを行うことができます。 + 引数 *bufsize* は、組み込み関数 :func:`open` における対応する引数と + 同じ意味を持ちます。 + *command* の終了ステータス (:func:`wait` で指定された書式でコード化され ています) + は、 :meth:`close` メソッドの戻り値として取得することができます。 + 例外は終了ステータスがゼロ (すなわちエラーなしで終了) の場合で、このときには ``None`` を返します。 + 利用できる環境: Unix、Windows .. deprecated:: 2.6 - .. This function is obsolete. Use the :mod:`subprocess` module. Check - especially the :ref:`subprocess-replacements` section. - - この関数は撤廃されました。代わりに :mod:`subprocess` モジュールを利用 してください。 + この関数は撤廃されました。 + 代わりに :mod:`subprocess` モジュールを利用してください。 特に、 :ref:`subprocess-replacements` 節をチェックしてください。 .. versionchanged:: 2.0 - この関数は、Pythonの初期のバージョンでは、 Windows環境下で信頼できな い動作をしていました。これはWindowsに付属して提供されるライブラリの - :cfunc:`_popen` 関数を利用したことによるものです。新しいバージョンの Python では、Windows 付属のライブラリ - にある壊れた実装を利用しません. + この関数は、Pythonの初期のバージョンでは、 + Windows環境下で信頼できない動作をしていました。 + これはWindowsに付属して提供されるライブラリの + :cfunc:`_popen` 関数を利用したことによるものです。 + 新しいバージョンの Python では、 + Windows 付属のライブラリにある壊れた実装を利用しません。 .. function:: tmpfile() - 更新モード(``w+b``)で開かれた新しいファイルオブジェクトを返します。この ファイルはディレクトリエントリ登録に関連付けられておらず、 - このファイルに対するファイル記述子がなくなると自動的に削除されます。利用 できる環境: Unix、Windows + 更新モード(``w+b``)で開かれた新しいファイルオブジェクトを返します。 + このファイルはディレクトリエントリ登録に関連付けられておらず、 + このファイルに対するファイル記述子がなくなると自動的に削除されます。 + + 利用できる環境: Unix、Windows .. There are a number of different :func:`popen\*` functions that provide slightly different ways to create subprocesses. @@ -363,15 +469,19 @@ 幾つかの少し異なった方法で子プロセスを作成するために、幾つか の :func:`popen\*` 関数が提供されています。 .. deprecated:: 2.6 - .. All of the :func:`popen\*` functions are obsolete. Use the :mod:`subprocess` module. - 全ての :func:`popen\*` 関数は撤廃されました。代わりに :mod:`subprocess` モジュールを利用してください。 - -:func:`popen\*` の変種はどれも、 *bufsize* が指定されている場合には I/O パ イプのバッファサイズを表します。 *mode* -を指定する場合には、文字列 ``'b'`` または ``'t'`` でなければなりません; こ れは、Windows でファイルをバイナリモードで開くか -テキストモードで開くかを決めるために必要です。 *mode* の標準の設定値は ``'t'`` です。 - -またUnixではこれらの変種はいずれも *cmd* をシーケンスにできます。その場合、 引数はシェルの介在なしに直接 (:func:`os.spawnv` -のように) 渡されます。 *cmd* が文字列の場合、引数は( :func:`os.system` のよ うに) シェルに渡されます。 + 全ての :func:`popen\*` 関数は撤廃されました。 + 代わりに :mod:`subprocess` モジュールを利用してください。 + +:func:`popen\*` の変種はどれも、 *bufsize* が指定されている場合には +I/O パイプのバッファサイズを表します。 *mode* を指定する場合には、 +文字列 ``'b'`` または ``'t'`` でなければなりません; +これは、Windows でファイルをバイナリモードで開くか +テキストモードで開くかを決めるために必要です。 +*mode* の標準の設定値は ``'t'`` です。 + +また Unix ではこれらの変種はいずれも *cmd* をシーケンスにできます。 +その場合、引数はシェルの介在なしに直接 (:func:`os.spawnv` のように) 渡され ます。 +*cmd* が文字列の場合、引数は( :func:`os.system` のように) シェルに渡されま す。 .. These methods do not make it possible to retrieve the exit status from the child processes. The only way to control the input and output streams and also @@ -392,7 +502,6 @@ *cmd* を子プロセスとして実行します。ファイル・オブジェクト ``(child_stdin, child_stdout)`` を返します。 .. deprecated:: 2.6 - .. This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. この関数は撤廃されました。 :mod:`subprocess` モジュールを利用してくだ さい。 特に、 :ref:`subprocess-replacements` 節を参照してください。 @@ -407,7 +516,6 @@ 返します。 .. deprecated:: 2.6 - .. This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. この関数は撤廃されました。 :mod:`subprocess` モジュールを利用してくだ さい。 特に、 :ref:`subprocess-replacements` 節を参照してください。 @@ -422,7 +530,6 @@ を返します。 .. deprecated:: 2.6 - .. This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. この関数は撤廃されました。 :mod:`subprocess` モジュールを利用してくだ さい。 特に、 :ref:`subprocess-replacements` 節を参照してください。 @@ -443,32 +550,40 @@ これらの関数は、ファイル記述子を使って参照されている I/Oストリームを操作し ます。 -ファイル記述子とは現在のプロセスから開かれたファイルに対応する小さな整数で す。例えば、標準入力のファイル記述子はいつでも 0 で、標準出力は 1、標準エ ラーは -2 です。その他にさらにプロセスから開かれたファイルには 3、4、5、などが割り 振られます。 -「ファイル記述子」という名前は少し誤解を与えるものかもしれませんが、 Unixプ ラットフォームにおいて、ソケットやパイプもファイル記述子によって参照されま す。 - +ファイル記述子とは現在のプロセスから開かれたファイルに対応する小さな整数で す。 +例えば、標準入力のファイル記述子はいつでも 0 で、標準出力は 1、標準エラー は 2 です。 +その他にさらにプロセスから開かれたファイルには 3、4、5、などが割り振られま す。 +「ファイル記述子」という名前は少し誤解を与えるものかもしれませんが、 +Unixプラットフォームにおいて、ソケットやパイプもファイル記述子によって参照 されます。 + +ファイルオブジェクトに紐付けられたファイル記述子は :meth:`~file.fileno` +メソッドによって取得可能です。 +ただし、ファイル記述子を直接使うとファイルオブジェクトのメソッドは経由しま せんので、 +内部でバッファするかどうかといったファイルオブジェクトの都合は無視されま す。 .. function:: close(fd) - ファイルディスクリプタ *fd* を閉じます。利用できる環境: Unix、 Windows + ファイルディスクリプタ *fd* を閉じます。 + + 利用できる環境: Unix、 Windows .. note:: - 注:この関数は低レベルの I/O のためのもので、 :func:`open` や :func:`pipe` が返すファイル記述子に対して適用しなければ - なりません。組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す "ファイルオブジェクト" - を閉じるには、オブジェクトの :meth:`close` メソッドを使ってください。 + 注:この関数は低レベルの I/O のためのもので、 + :func:`os.open` や :func:`pipe` が返すファイル記述子に対して + 適用しなければなりません。 + 組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す + "ファイルオブジェクト" を閉じるには、 + オブジェクトの :meth:`~file.close` メソッドを使ってください。 .. function:: closerange(fd_low, fd_high) .. Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive), - ignoring errors. Availability: Unix, Windows. Equivalent to:: - - *fd_low* (を含む) から *fd_high* (含まない) までの全てのディスクリプタ を、\ - エラーを無視しながら閉じる。 - - 利用できる環境: Unix、Windows - + ignoring errors. Availability: Unix, Windows. Equivalent to + + *fd_low* (を含む) から *fd_high* (含まない) までの全てのディスクリプタ を、 + エラーを無視しながら閉じます。 次のコードと等価です:: for fd in xrange(fd_low, fd_high): @@ -477,18 +592,22 @@ except OSError: pass + 利用できる環境: Unix、Windows + .. versionadded:: 2.6 .. function:: dup(fd) ファイル記述子 *fd* の複製を返します。 - 利用できる環境: Unix、 Windows. - + + 利用できる環境: Unix、Windows .. function:: dup2(fd, fd2) - ファイル記述子を *fd* から *fd2* に複製し、必要なら後者の記述子を前もっ て閉じておきます。 + ファイル記述子を *fd* から *fd2* に複製し、 + 必要なら後者の記述子を前もって閉じておきます。 + 利用できる環境: Unix、Windows @@ -497,8 +616,9 @@ .. Change the mode of the file given by *fd* to the numeric *mode*. See the docs for :func:`chmod` for possible values of *mode*. Availability: Unix. - *fd* で指定されたファイルのモードを *mode* に変更する。 + *fd* で指定されたファイルのモードを *mode* に変更します。 *mode* に指定できる値については、 :func:`chmod` のドキュメントを参照して ください。 + 利用できる環境: Unix .. versionadded:: 2.6 @@ -510,89 +630,131 @@ and *gid*. To leave one of the ids unchanged, set it to -1. Availability: Unix. - *fd* で指定されたファイルの owner id と group id を、 *uid* と *gid* に 変更する。 + *fd* で指定されたファイルの owner id と group id を、 + *uid* と *gid* に変更します。 どちらかの id を変更しない場合は、 -1 を渡してください。 + 利用できる環境: Unix .. versionadded:: 2.6 .. function:: fdatasync(fd) - ファイル記述子 *fd* を持つファイルのディスクへの書き込みを強制します。メ タデータの更新は強制しません。 + ファイル記述子 *fd* を持つファイルのディスクへの書き込みを強制します。 + メタデータの更新は強制しません。 + 利用できる環境: Unix .. function:: fpathconf(fd, name) - 開いているファイルに関連したシステム設定情報 (system configuration information) を返します。 *name* - には取得したい設定名を指定します; これは定義済みのシステム固有値名の文 字列で、多くの標準 (POSIX.1、 Unix 95、 Unix 98 その他) - で定義されています。プラットフォームによっては別の名前も定義しています。 ホストオペレーティングシステムの関知する名前は ``pathconf_names`` - 辞書で与えられています。このマップオブジェクトに入っていない設定変数につ いては、 *name* に整数を渡してもかまいません。 - 利用できる環境: Unix - - もし *name* が文字列でかつ不明である場合、 :exc:`ValueError` を送出しま す。 *name* - の指定値がホストシステムでサポートされておらず、 ``pathconf_names`` にも 入っていない場合、 :const:`errno.EINVAL` + 開いているファイルに関連したシステム設定情報 (system configuration information) + を返します。 + *name* には取得したい設定名を指定します; + これは定義済みのシステム固有値名の文字列で、多くの標準 + (POSIX.1、 Unix 95、 Unix 98 その他) で定義されています。 + プラットフォームによっては別の名前も定義しています。 + ホストオペレーティングシステムの関知する名前は ``pathconf_names`` + 辞書で与えられています。 + このマップオブジェクトに入っていない設定変数については、 + *name* に整数を渡してもかまいません。 + + もし *name* が文字列でかつ不明である場合、 :exc:`ValueError` を送出しま す。 + *name* の指定値がホストシステムでサポートされておらず、 + ``pathconf_names`` にも入っていない場合、 :const:`errno.EINVAL` をエラー番号として :exc:`OSError` を送出します。 + 利用できる環境: Unix .. function:: fstat(fd) :func:`stat` のようにファイル記述子 *fd* の状態を返します。 + 利用できる環境: Unix、Windows .. function:: fstatvfs(fd) - :func:`statvfs` のように、ファイル記述子 *fd* に関連づけられたファイルが 入っているファイルシステムに関する情報を返します。 + :func:`statvfs` のように、ファイル記述子 + *fd* に関連づけられたファイルが入っているファイルシステムに関する情報を 返します。 + 利用できる環境: Unix .. function:: fsync(fd) - ファイル記述子 *fd* を持つファイルのディスクへの書き込みを強制します。 Unixでは、ネイティブの :cfunc:`fsync` 関数を、Windows - では MS :cfunc:`_commit` 関数を呼び出します。 - - Python のファイルオブジェクト *f* を使う場合、 *f* の内部バッファを確実 にディスクに書き込むために、まず ``f.flush()`` を実行し、 + ファイル記述子 *fd* を持つファイルのディスクへの書き込みを強制します。 + Unix では、ネイティブの :cfunc:`fsync` 関数を、Windows + では MS :cfunc:`_commit` 関数を呼び出します。 + + Python のファイルオブジェクト *f* を使う場合、 + *f* の内部バッファを確実にディスクに書き込むために、まず ``f.flush()`` を実行し、 それから ``os.fsync(f.fileno())`` してください。 + 利用できる環境: Unix、Windows (2.2.3 以降) .. function:: ftruncate(fd, length) - ファイル記述子 *fd* に対応するファイルを、サイズが最大で *length* バイ トになるように切り詰めます。 + ファイル記述子 *fd* に対応するファイルを、 + サイズが最大で *length* バイトになるように切り詰めます。 + 利用できる環境: Unix .. function:: isatty(fd) - ファイル記述子 *fd* が開いていて、tty(のような)装置に接続されている場 合、 ``1`` を返します。そうでない場合は ``0`` を返します。 + ファイル記述子 *fd* が開いていて、tty(のような)装置に接続されている場 合、 + ``1`` を返します。そうでない場合は ``0`` を返します。 + 利用できる環境: Unix .. function:: lseek(fd, pos, how) - ファイル記述子 *fd* の現在の位置を *pos* に設定します。 *pos* の意味は *how* で修飾されます: + ファイル記述子 *fd* の現在の位置を *pos* に設定します。 + *pos* の意味は *how* で修飾されます: ファイルの先頭からの相対には :const:`SEEK_SET` か ``0`` を設定します; 現在の位置からの相対には :const:`SEEK_CUR` か ``1`` を設定します; ファイルの末尾からの相対には :const:`SEEK_END` か ``2`` を設定します。 + 利用できる環境: Unix、Windows - -.. function:: open(file, flags[, mode]) - - ファイル *file* を開き、 *flag* に従って様々なフラグを設定し、可能なら *mode* に従ってファイルモードを設定します。 *mode* - の標準の設定値は ``0777`` (8進表現) で、先に現在の umask を使ってマスク を掛けます。新たに開かれたファイルの - のファイル記述子を返します。 +.. data:: SEEK_SET + SEEK_CUR + SEEK_END + + :func:`lseek` 関数に渡すパラメータ。 + 値は順に 0, 1, 2 です。 + 利用できる環境: Unix、Windows + .. versionadded:: 2.5 + +.. function:: open(file, flags[, mode]) + + ファイル *file* を開き、 *flag* に従って様々なフラグを設定し、 + 可能なら *mode* に従ってファイルモードを設定します。 + *mode* の標準の設定値は ``0777`` (8進表現) で、 + 先に現在の umask を使ってマスクを掛けます。 + 新たに開かれたファイルのファイル記述子を返します。 + フラグとファイルモードの値についての詳細は C - ランタイムのドキュメントを参照してください; (:const:`O_RDONLY` や :const:`O_WRONLY` のような) + ランタイムのドキュメントを参照してください; + (:const:`O_RDONLY` や :const:`O_WRONLY` のような) フラグ定数はこのモジュールでも定義されています (以下を参照してください )。 + 特に、Windows ではバイナリファイルを開くときに :const:`O_BINARY` + を加える必要があります。 + + 利用できる環境: Unix、Windows .. note:: - この関数は低レベルの I/O のためのものです。通常の利用で は、 :meth:`read` や :meth:`write` (やその他多くの) メソッドを持つ - 「ファイルオブジェクト」を返す、組み込み関数 :func:`open` を使ってく ださい。ファイル記述子を「ファイルオブジェクト」でラップするには + この関数は低レベルの I/O のためのものです。 + 通常の利用では、 :meth:`~file:read` や :meth:`~file:write` (やその他 多くの) + メソッドを持つ「ファイルオブジェクト」を返す、 + 組み込み関数 :func:`open` を使ってください。 + ファイル記述子を「ファイルオブジェクト」でラップするには :func:`fdopen` を使ってください。 @@ -600,74 +762,96 @@ .. index:: module: pty - 新しい擬似端末のペアを開きます。ファイル記述子のペア ``(master, slave)`` を返し、それぞれ pty および tty を表します。(少しだけ) - より可搬性のあるアプローチとしては、 :mod:`pty` モジュールを使ってくださ い。 - 利用できる環境: いくつかの Unix系システム + 新しい擬似端末のペアを開きます。 + ファイル記述子のペア ``(master, slave)`` を返し、 + それぞれ pty および tty を表します。 + (少しだけ) より可搬性のあるアプローチとしては、 + :mod:`pty` モジュールを使ってください。 + + 利用できる環境: いくつかの Unix 系システム .. function:: pipe() - パイプを作成します。ファイル記述子のペア ``(r, w)`` を返し、それぞれ読 み出し、書き込み用に使うことができます。 + パイプを作成します。 + ファイル記述子のペア ``(r, w)`` を返し、 + それぞれ読み出し、書き込み用に使うことができます。 + 利用できる環境: Unix、Windows .. function:: read(fd, n) - ファイル記述子 *fd* から最大で *n* バイト読み出します。読み出されたバイ ト列の入った文字列を返します。 *fd* が参照して - いるファイルの終端に達した場合、空の文字列が返されます。 + ファイル記述子 *fd* から最大で *n* バイト読み出します。 + 読み出されたバイト列の入った文字列を返します。 + *fd* が参照しているファイルの終端に達した場合、空の文字列が返されます。 + 利用できる環境: Unix、Windows .. note:: - この関数は低レベルの I/O のためのもので、 :func:`open` や :func:`pipe` + この関数は低レベルの I/O のためのもので、 :func:`os.open` や :func:`pipe` が返すファイル記述子に対して適用しなければなりません。 - 組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す "フ ァイルオブジェクト" - 、あるいは :data:``sys.stdin`` から読み出すには、オブジェクトの - :meth:`read` か :meth:`readline` メソッドを使ってください。 + 組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す + "ファイルオブジェクト"、あるいは :data:`sys.stdin` から読み出すには、 + オブジェクトの + :meth:`~file.read` か :meth:`~file.readline` メソッドを使ってくださ い。 .. function:: tcgetpgrp(fd) - *fd* (:func:`open` が返す開かれたファイル記述子) で与えられる端末に関連 付けられたプロセスグループを返します。 + *fd* (:func:`open` が返す開かれたファイル記述子) + で与えられる端末に関連付けられたプロセスグループを返します。 + 利用できる環境: Unix .. function:: tcsetpgrp(fd, pg) - *fd* (:func:`open` が返す開かれたファイル記述子) で与えられる端末に関連 付けられたプロセスグループを *pg* に設定します。 + *fd* (:func:`open` が返す開かれたファイル記述子) + で与えられる端末に関連付けられたプロセスグループを *pg* に設定します。 + 利用できる環境: Unix .. function:: ttyname(fd) - ファイル記述子 *fd* に関連付けられている端末デバイスを特定する文字列を返 します。 *fd* が端末に関連付けられていない場合、例外が送出されます。 + ファイル記述子 *fd* に関連付けられている端末デバイスを特定する文字列を返 します。 + *fd* が端末に関連付けられていない場合、例外が送出されます。 + 利用できる環境: Unix .. function:: write(fd, str) - ファイル記述子 *fd* に文字列 *str* を書き込みます。実際に書き込まれたバ イト数を返します。 + ファイル記述子 *fd* に文字列 *str* を書き込みます。 + 実際に書き込まれたバイト数を返します。 + 利用できる環境: Unix、Windows .. note:: - この関数は低レベルの I/O のためのもので、 :func:`open` や :func:`pipe` + この関数は低レベルの I/O のためのもので、 :func:`os.open` や :func:`pipe` が返すファイル記述子に対して適用しなければなりません。 - 組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す "フ ァイルオブジェクト" - 、あるいは ``sys.stdout``, ``sys.stderr`` に書き込むには、オブジェク トの :meth:`write` + 組み込み関数 :func:`open` や :func:`popen`, :func:`fdopen` の返す + "ファイルオブジェクト"、あるいは data:`sys.stdout`, :data:`sys.stderr` + に書き込むには、オブジェクトの :meth:`~file.write` メソッドを使ってください。 +``open()`` フラグ定数 +~~~~~~~~~~~~~~~~~~~~~ + .. The following constants are options for the *flags* parameter to the :func:`open` function. They can be combined using the bitwise OR operator ``|``. Some of them are not available on all platforms. For descriptions of their availability and use, consult the :manpage:`open(2)` manual page on Unix or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>` on Windows. -以下の定数は :func:`open` 関数の *flags* 引数に利用します。 +以下の定数は :func:`~os.open` 関数の *flags* 引数に利用します。 これらの定数は、ビット単位OR ``|`` で組み合わせることができます。 幾つかの定数は、全てのプラットフォームで使えるわけではありません。 利用可能かどうかや使い方については、 Unix では :manpage:`open(2)`, Windows -では `MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>` +では `MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ を参照してください。 @@ -716,16 +900,6 @@ これらの定数は GNU 拡張で、Cライブラリで定義されていない場合は利用できま せん。 -.. data:: SEEK_SET - SEEK_CUR - SEEK_END - - :func:`lseek` 関数のパラメータです。値はそれぞれ 0, 1, 2 です。 - 利用できる環境: Windows、 Unix - - .. versionadded:: 2.5 - - .. _os-file-dir: ファイルとディレクトリ @@ -733,24 +907,32 @@ .. function:: access(path, mode) - 実 uid/gid を使って *path* に対するアクセスが可能か調べます。ほとんどの オペレーティングシステムは実行 uid/gid を使うため、 - このルーチンは suid/sgid 環境において、プログラムを起動したユーザが *path* に対するアクセス権をもっているかを調べる - ために使われます。 *path* が存在するかどうかを調べるには *mode* を :const:`F_OK` にします。ファイル操作許可 - (permission) を調べるために :const:`R_OK`, :const:`W_OK`, :const:`X_OK` - から一つまたはそれ以上のフラグと OR をとることもできます。アクセスが許可 されている場合 ``True`` を、そうでない場合 ``False`` - を返します。詳細は :manpage:`access(2)` のマニュアルページを参照してくだ さい。 + 実 uid/gid を使って *path* に対するアクセスが可能か調べます。 + ほとんどのオペレーティングシステムは実効 uid/gid を使うため、 + このルーチンは suid/sgid 環境において、プログラムを起動したユーザが + *path* に対するアクセス権をもっているかを調べるために使われます。 + *path* が存在するかどうかを調べるには *mode* を :const:`F_OK` にします。 + ファイル操作許可 (permission) を調べるために + :const:`R_OK`, :const:`W_OK`, :const:`X_OK` + から一つまたはそれ以上のフラグと OR をとることもできます。 + アクセスが許可されている場合 ``True`` を、そうでない場合 ``False`` を返 します。 + 詳細は :manpage:`access(2)` のマニュアルページを参照してください。 + 利用できる環境: Unix、Windows .. note:: - :func:`access` を使ってユーザーが例えばファイルを開く権限を持っている か :func:`open` - を使って実際にそうする前に調べることはセキュリティ・ホールを作り出し てしまいます。というのは、調べる時点と開く時点の時間差を利用して + :func:`access` を使ってユーザーが例えばファイルを開く権限を持っている か + :func:`open` を使って実際にそうする前に調べることは + セキュリティ・ホールを作り出してしまいます。 + というのは、調べる時点と開く時点の時間差を利用して そのユーザーがファイルを操作してしまうかもしれないからです。 .. note:: - I/O 操作は :func:`access` が成功を思わせるときにも失敗することがあり えます。特にネットワーク・ファイルシステムにおける操作が通常の - POSIX 許可ビット・モデルをはみ出す意味論を備える場合にはそのようなこ とが起こりえます。 + I/O 操作は :func:`access` が成功を思わせるときにも失敗することがあり えます。 + 特にネットワーク・ファイルシステムにおける操作が通常の POSIX + 許可ビット・モデルをはみ出す意味論を備える場合にはそのようなことが起 こりえます。 .. data:: F_OK @@ -778,18 +960,21 @@ .. index:: single: directory; changing 現在の作業ディレクトリ (current working directory) を *path* に設定しま す。 + 利用できる環境: Unix、Windows。 .. function:: getcwd() 現在の作業ディレクトリを表現する文字列を返します。 + 利用できる環境: Unix、Windows。 .. function:: getcwdu() 現在の作業ディレクトリを表現するユニコードオブジェクトを返します。 + 利用できる環境: Unix、 Windows .. versionadded:: 2.3 @@ -815,7 +1000,7 @@ * ``SF_NOUNLINK`` * ``SF_SNAPSHOT`` - 利用できる環境: Unix. + 利用できる環境: Unix。 .. versionadded:: 2.6 @@ -823,6 +1008,7 @@ .. function:: chroot(path) 現在のプロセスに対してルートディレクトリを *path* に変更します。 + 利用できる環境: Unix .. versionadded:: 2.2 @@ -830,41 +1016,45 @@ .. function:: chmod(path, mode) - *path* のモードを数値 *mode* に変更します。 *mode* は、(:mod:`stat` モジ ュールで定義されている) + *path* のモードを数値 *mode* に変更します。 + *mode* は、(:mod:`stat` モジュールで定義されている) 以下の値のいずれかまたはビット単位の OR で組み合わせた値を取り得ます: - * ``stat.S_ISUID`` - * ``stat.S_ISGID`` - * ``stat.S_ENFMT`` - * ``stat.S_ISVTX`` - * ``stat.S_IREAD`` - * ``stat.S_IWRITE`` - * ``stat.S_IEXEC`` - * ``stat.S_IRWXU`` - * ``stat.S_IRUSR`` - * ``stat.S_IWUSR`` - * ``stat.S_IXUSR`` ***The diff for this file has been truncated for email.***