# 6.1 `os` -- 雑多なオペレーティングシステムインタフェース

このモジュールでは、オペレーティングシステム依存の機能を利用する方法 として、`posix` や `nt` といったオペレーティング システム依存の組み込みモジュールを import するよりも可搬性の高い 手段を提供しています。

このモジュールは、`mac` や `posix` のような、 オペレーティングシステム依存の組み込みモジュールから関数やデータを 検索して、見つかったものを取り出し (export) ます。Python における 組み込みのオペレーティングシステム依存モジュールは、同じ機能を 利用することができる限り、同じインタフェースを使います; たとえば、 `os.stat(path)` は path についての stat 情報を (たまたま POSIX インタフェースに起源する) 同じ書式で返します。

特定のオペレーティングシステム固有の拡張も `os` を介して 利用することができますが、これらの利用はもちろん、可搬性を脅かします！

最初の `os` の import 以後、`os` を介した関数の 利用は、オペレーティングシステム依存組み込みモジュールにおける関数の 直接利用に比べてパフォーマンス上のペナルティは 全くありません。 従って、`os`を利用しない理由は 存在しません !

`os` モジュールには多くの関数とデータ値が入っています。 以下の項目と、その後に続くサブセクションは `os` モジュールから 直接利用できます。

exception `error`
  関数がシステム関連のエラー(引数の型違いや他のありがちなエラーではない) を返した場合この例外が発生します。これは `OSError` とし て知られる組み込み例外でもあります。付属する値は `errno` から とった数値のエラーコードと、エラーコードに対応する、C 関数 `perror()` により出力されるのと同じ文字列からなるペアです。 背後のオペレーティングシステムで定義されているエラーコード名が収め られている `errno` を参照してください。

  例外がクラスの場合、この例外は二つの属性、`errno` と `strerror` を持ちます。前者の属性は C の `errno` 変数 の値、後者は `strerror()` による対応するエラーメッセージ の値を持ちます。(`chdir()` や `unlink()` のような) ファイルシステム上のパスを含む例外に対しては、この例外インスタンス は 3 つめの属性、`filename` を持ち、関数に渡されたファイル名 となります。

`name`
  import されているオペレーティング・システム依存モジュールの名前です。 現在次の名前が登録されています: `'posix'`, `'nt'` 、 `'dos'` 、 `'mac'` 、 `'os2'` 、 `'ce'` 、 `'java'` 、 `'riscos'` 。

`path`
  `posixpath` や `macpath` のように、システムごとに対応 付けられているパス名操作のためのシステム依存の標準モジュールです。 すなわち、正しく import が行われるかぎり、 `os.path.split(file)` は `posixpath.split(file)` と等価でありながらより汎用性があります。このモジュール自体が import 可能なモジュールでもあるので注意してください。: `os.path` として直接 import してもかまいません。