8.2 標準モジュール posixpath

 

このモジュールには、POSIX パス名を操作するための便利な関数が実装されています。

このモジュールは、直接インポートしないでください。 その代わりに、 モジュール os をインポートして、os.path を使用してください。  

basename (p)
パスpの中のベース名(パスを除いたファイル名、ディレクトリ名など)を 返します。これは、posixpath.split(p) により返される2つの要素を 持つタプルの2番目の要素と同じものです。

commonprefix (list)
list 中の全ての文字列のプレフィックス(全ての文字列に共通な先頭文字列)を 返します。list が要素を持たない場合は、空の文字列('')を 返します。

exists (p)
p が存在するパスの場合に、真(true)を返します。

expanduser (p)
引数として渡された "~" または "~user" を、user のホームディレクトリに置き換えて返します。 "~" は、環境変数 $HOME の値に置き換えられます。 また、"~user" の場合は、組み込みモジュール pwd   を通して、パスワードディレクトリの中から 該当するものを捜します。置き換えに失敗した場合、またはパスがチルダ(~)で 始まっていない場合には、指定したパスがそのまま返されます。

expandvars (p)
引数の中の環境変数を展開して返します。"$name"、または "${name}" の形式の文字列が、環境変数 name の値に 置き換えられます。前記の形式に合っていない変数名や、存在しない環境変数の 名前が指定された場合は、置き換えは行われません。

isabs (p)
p が絶対パス(スラッシュで始まるパス)の場合に、真(true)を返します。

isfile (p)
p が実在するレギュラーファイルの場合に、真(true)を返します。 シンボリックリンクが指定された場合は、それが指している実体をチェックする ので、同じパスについて islink()isfile() がどちらも 真(true)を返す場合があります。

isdir (p)
p が実在するディレクトリの場合に、真(true)を返します。 シンボリックリンクが指定された場合は、それが指している実体をチェックする ので、同じパスについて islink()isdir() がどちらも 真(true)を返す場合があります。

islink (p)
p がシンボリックリンクである場合に、真(true)を返します。 シンボリックリンクがサポートされていないシステムでは、常に偽(false)を 返します。

ismount (p)
パス pマウントポイント の場合に、真(true)を返します。 異なるファイルシステムがマウントされている場合にも、真(true)を返します。 この関数は、p の親ディレクトリ "p/.." が p と 異なるデバイスであるかどうか、または "p/.." と p が 同じデバイス上の同じ i-ノードを指しているかどうかをチェックします。 この方法により、全ての Unix と POSIX の変形 OS ではマウントポイントを検出する ことができます。

join (p[, q[, ...]])
指定された1つまたは複数のパスの要素を結合します。要素の中に絶対パスのものが ある場合は、それより前の全ての要素を破棄し、以降の要素の結合を続けます。 戻り値は、p、オプションの q、および指定されていればその他の 要素を、各要素の間に必ず1つのスラッシュ('/')を挿入して結合した ものです。

normcase (p)
パス名の中の大文字、小文字などを、システムの標準に合わせます。Unix では常に そのままのパスを返します。大文字、小文字を区別しないファイルシステムでは、 パス名を小文字に変換します。さらに Windows では、スラッシュ(/)をバック スラッシュ(\)に変換します。

normpath (p)
パス名をシステムの標準に合わせます。余分なセパレータや上位ディレクトリの 参照などを取り除きます。例えば、A//BA/./B、また A/foo/../B などは全て A/B になります。大文字、小文字の 変換は行いません。(normcase() を使用してください。)また、Windows では、スラッシュのバックスラッシュへの変換も行いません。

samefile (p, q)
引数で指定されたパス名が同じファイルまたはディレクトリを指している(同じ デバイス番号、同じ i-ノード番号を指している)場合に、真(true)を返します。 いずれかのパス名について os.stat() コールが失敗した場合は、例外を あげます。

split (p)
パス名を (head, tail) のペアに分割します。tail は パス名の最後の要素を、また head はそれ以前の全ての要素です。 tail にスラッシュが含まれることはありません。p がスラッシュで 終わる場合には、tail は空になります。p が空の場合は、headtail は共に空になります。head の末尾のスラッシュは、それが ルートディレクトリ(1つまたは複数のスラッシュのみで表される)の場合以外には 削除されます。ほとんど全ての場合に、join(head, tail) の 結果と p は等しくなります。(唯一の例外は、複数のスラッシュによって headtail が区切られている場合です。)

splitext (p)
パス名 p(root, ext) のペア(拡張子とその前 までの部分)に分割します。 root + ext == p となり、ext は空であるか、 そうでない場合はピリオドで始まります(ただし、1つのピリオドしか含みません)。

walk (p, visit, arg)
p 以下のディレクトリツリー中の各サブディレクトリについて、引数 (arg, dirname, names) を渡して関数 visit を呼び出します。(p がディレクトリの場合は、それ自身も含まれます。) 引数 dirname は、処理対象となっているディレクトリを示します。また、引数 names は、そのディレクトリ内のファイル名のリストです。 (os.listdir(dirname) により得られるものと同じです。) 関数 visit の中で names を変更することにより、 dirname 以下のそれ以降に処理対象となるサブディレクトリのセットを変更することができます。 (例えば、ディレクトリツリー内のあるサブディレクトリ以下を処理の対象から除外 するような場合) ただし、names により参照されるリストオブジェクトは、del または スライスに対する値の代入によって修正しなければなりません。

guido@python.org