ソースコード:Lib/posixpath.py (POSIXの場合)andLib/ntpath.py (WINDOWS NTの場合)。
このモジュールはパス名に対していくつかの便利な関数を実装しています。 ファイルを読み書きするにはopen()
を参照し、ファイルシステムにアクセスするにはos
モジュールを参照してください。 パスパラメータは、文字列またはバイトのいずれかとして渡すことができます。 アプリケーションでは、ファイル名を(Unicode)文字列として表現することをお勧めします。 残念ながら、一部のファイル名はUnixでは文字列として表現できない場合があるため、Unixでファイル名をサポートする必要があるアプリケーションでは、パス名を表現するためにbytesオブジェクトを使用する必要がある。 逆に、bytesオブジェクトを使用すると、Windows上のすべてのファイル名を表すことができないため(標準のmbcs
エンコーディングで)、Windowsapplicationsはstringオブジェクトを使用してすべ
unixシェルとは異なり、Pythonは自動的なパス展開を行いません。アプリケーションがシェルのようなパス展開を希望する場合、expanduser()
やexpandvars()
などの関数を明示的に呼び出すことができます。 (glob
モジュールも参照。)
関連項目
pathlib
モジュールは高レベルのパスオブジェクトを提供します。
注
これらの関数はすべて、バイトのみまたは文字列オブジェクトのみをパラメータとして受け入れます。 パスまたはファイル名が返された場合、結果は同じ型のオブジェクトになります。
注
オペレーティングシステムによってパス名の規則が異なるため、標準ライブラリにはこのモジュールのいくつかのバージョンがあります。 os.path
モジュールは常にPythonが実行されているoperatingsystemに適したパスモジュールであり、したがってローカルパスに使用できます。 ただし、操作する場合は、個々のモジュールをインポートして使用することもできます常に異なる形式のいずれかにあるパス。 彼らはすべて同じインターフェイスを持っています:
-
posixpath
UNIXスタイルのパスの場合 -
ntpath
Windowsパスの場合
バージョン3.8で変更: exists()
, lexists()
, isdir()
, isfile()
,islink()
, そして、ismount()
は、OSレベルで文字またはbytesunrepresentableを含むパスの例外を発生させる代わりにFalse
を返すようになりました。
os.path.
abspath
(path)¶
パス名pathの正規化された絶対化されたバージョンを返します。 ほとんどのplatformsでは、これは関数normpath()
asfollows:normpath(join(os.getcwd(), path))
を呼び出すのと同じです。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
basename
(path)¶
パス名pathのベース名を返します。 これは、pathを関数split()
に渡すことによって返されるthepairの2番目の要素です。 この関数の結果はUnixのbasenameプログラムとは異なることに注意してください。'/foo/bar/'
のbasenameは'bar'
を返し、basename()
関数は空の文字列(''
)を返します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
commonpath
(paths)¶
sequencepaths内の各パス名の最長共通サブパスを返します。 RaiseValueError
パスに絶対パス名と相対パス名の両方が含まれている場合、パスは異なるドライブ上にあり、パスが空の場合。 commonprefix()
とは異なり、これはavalid pathを返します。
可用性:Unix,Windows.
バージョン3.5で追加。
バージョン3.6で変更:パスのようなオブジェクトのシーケンスを受け入れます。
os.path.
commonprefix
(list)リスト内のすべてのパスのaprefixである最長のパス接頭辞(文字ごとに取られた)を返します。 Listが空の場合は、空の文字列(''
)を返します。
注
この関数は、一度に文字で動作するため、無効なパスを返す可能性があります。 有効なパスを取得するには、commonpath()
を参照してください。
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
dirname
(path)¶
パス名pathのディレクトリ名を返します。 これは、pathを関数split()
に渡すことによって返されるペアの最初の要素です。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
exists
(path)¶
pathが既存のパスまたはopenfile記述子を参照している場合、True
を返します。 壊れたシンボリックリンクのFalse
を返します。 一部のプラットフォームでは、パスが物理的に存在していても、要求されたファイルに対してos.stat()
を実行する権限が付与されていない場合、この関数はFalse
を返
バージョン3.3で変更: オープンファイル記述子の場合はTrue
が返され、それ以外の場合はFalse
が返されます。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
lexists
(path)¶
pathが既存のパスを参照している場合はTrue
を返します。 シンボリックリンクのTrue
を返します。 os.lstat()
を持たないプラットフォームではexists()
に相当します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
expanduser
(UnixおよびWindowsでは、~
または~user
の初期コンポーネントをそのユーザーのホームディレクトリに置き換えて引数を返します。
Unixでは、初期の~
が設定されている場合は環境変数HOME
に置き換えられます。 最初の~user
は、パスワードディレクトリ内で直接検索されます。Windowsでは
が設定されていればUSERPROFILE
が使用され、それ以外の場合はHOMEPATH
とHOMEDRIVE
の組み合わせが使用されます。 最初の~user
は、上記のcreateduserパスから最後のディレクトリコンポーネントを削除することによって処理されます。
展開が失敗した場合、またはパスがチルダで始まっていない場合、パスは変更されません。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
バージョン3.8で変更:WindowsではHOME
を使用しなくなりました。
os.path.
expandvars
(path)¶
環境変数を展開した引数を返します。 $name
または${name}
の形式の部分文字列は、環境変数名の値に置き換えられます。 不正な形式の変数名と存在しない変数への参照は変更されません。
Windowsでは、$name
と${name}
に加えて、%name%
拡張がサポートされています。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
getatime
(path)¶
pathの最後のアクセス時刻を返します。 戻り値は、エポックからの秒数を与える浮動小数点数です(time
モジュールを参照)。 ファイルが存在しないかアクセスできない場合は、OSError
を上げます。
os.path.
getmtime
(path)¶
パスの最後の変更時刻を返します。 戻り値は浮動小数点数であり、エポックからの秒数を表します(time
モジュールを参照してください)。ファイルが存在しないかアクセスできない場合は、OSError
を上げます。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
getctime
(path)¶
一部のシステム(Unixなど)では最後のメタデータ変更の時刻であり、他のシステム(Windowsなど)ではpathの作成時刻であるシステムのctimeを返します。戻り値はエポックからの秒数を示す数値です(seethetime
モジュール)。 ファイルが存在しない場合、またはアクセスできない場合はOSError
を発生させます。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
getsize
(path)¶
pathのサイズをバイト単位で返します。 ファイルが存在しない場合、またはアクセスできない場合は、OSError
を上げます。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
isabs
(パス)path
pathが絶対パス名の場合、True
を返します。 Unixでは、それはスラッシュで始まり、Windowsでは、潜在的なドライブ文字をchoppingoff後に(バック)スラッシュで始まることを意味します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
isfile
(path)¶
pathがexisting
通常のファイルの場合、True
を返します。これはシンボリックリンクに従うので、islink()
とisfile()
の両方が同じパスに対して真であることができます。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
isdir
(path)directory
pathがexisting
ディレクトリの場合、True
を返します。 これはシンボリックリンクに従っているため、islink()
とisdir()
の両方が同じパスでtrueになる可能性があります。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
islink
(path)symbolic
pathがシンボリックリンクであるexisting
directoryentryを参照している場合、True
を返します。 シンボリックリンクがPythonランタイムによってサポートされていない場合は、常にFalse
。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
ismount
(path)¶
パス名pathがマウントポイントの場合、True
を返します。afileシステム内のポイントで、別のファイルシステムがマウントされています。 POSIXでは、関数はpathの親path/..
がpathとは異なるデバイス上にあるかどうか、またはpath/..
とpathが同じデバイス上の同じノードを指しているかどうかをチェックします。 同じファイルシステム上のバインドマウントを確実に検出することはできません。 Windowsでは、ドライブ文字のルートと共有UNC領域常にマウントポイントであり、他のパスGetVolumePathName
は、入力パスとは異なるかどうかを確認するために呼び出されます。
バージョン3.4で追加:Windows上で非ルートマウントポイントを検出するためのサポート。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
join
(path,*paths)¶
一つ以上のパスコンポーネントをインテリジェントに結合します。 戻り値は、pathと*pathsのメンバーのconcatenationであり、lastを除く空でない各部分の後に正確にonedirectoryセパレータ(os.sep
)が付いています。lastpartが空の場合にのみ結果がセパレータで終了するこ コンポーネントが絶対パスの場合、previouscomponentsはすべて破棄され、絶対pathcomponentから結合が続行されます。
Windowsでは、絶対パスコンポーネント(r'\foo'
など)が検出された場合、ドライブ文字はリセットされません。 コンポーネントにdriveletterが含まれている場合は、以前のすべてのコンポーネントが破棄され、ドライブ文字がresetになります。 各ドライブに現在のディレクトリがあるため、os.path.join("c:", "foo")
はc:\foo
ではなく、ドライブC:
(c:foo
)のcurrentdirectoryに対する相対パスを表します。
バージョン3.6で変更:パスとパスのパスのようなオブジェクトを受け入れます。
os.path.
normcase
(パス)¶
パス名の大文字と小文字を正規化します。 Windowsでは、thepathname内のすべての文字を小文字に変換し、前方スラッシュを後方スラッシュに変換します。他のオペレーティングシステムでは、パスを変更せずに返します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
normpath
(path)¶
冗長な区切り文字とアップレベルリファレンスを折りたたんでパス名を正規化し、次のようにしますA//B
, A/B/
, A/./B
そして、A/foo/../B
はすべてA/B
になります。 この文字列操作は、シンボリックリンクを含むパスの意味を変更する可能性があります。 Windowsでは、前方スラッシュを後方スラッシュに変換します。 大文字と小文字を正規化するには、normcase()
を使用します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
realpath
(path)¶
指定されたファイル名の正規パスを返し、パスで検出されたsymboliclinksを削除します(operatingsystemでサポートされている場合)。
注
シンボリックリンクサイクルが発生した場合、返されるパスはサイクルの一つのメンバーになりますが、どのメンバーになるかについては保証されません。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
バージョン3.8で変更:シンボリックリンクとジャンクションがWindows上で解決されました。
os.path.
relpath
(パス、開始=os。curdir)¶
現在のディレクトリまたはオプションの開始ディレクトリからのパスへの相対ファイルパスを返します。 これはパス計算です。path orstartの存在または性質を確認するためにfilesystemにアクセスされません。
開始デフォルトはos.curdir
です。
可用性:Unix,Windows.
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
samefile
(path1,path2)¶
両方のパス名引数が同じファイルまたはディレクトリを参照している場合、True
を返します。これはデバイス番号とiノード番号によって決定され、いずれかのパス名のos.stat()
呼び出しが失敗した場合にanexceptionが発生します。
可用性:Unix,Windows.
バージョン3.2で変更:Windowsサポートが追加されました。
バージョン3.4で変更:Windowsは他のすべてのプラットフォームと同じ実装を使用するようになりました。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
sameopenfile
(Fp1,fp2)¶
ファイル記述子fp1とfp2が同じファイルを参照している場合、True
を返します。
可用性:Unix,Windows.
バージョン3.2で変更:Windowsサポートが追加されました。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
samestat
(stat1,stat2)¶
statタプルstat1とstat2が同じファイルを参照している場合、True
を返します。これらの構造体は、os.fstat()
、os.lstat()
、またはos.stat()
によって返された可能性があります。 この関数は、samefile()
とsameopenfile()
で使用されるアンダーライニング比較を実装します。
可用性:Unix,Windows.
バージョン3.4で変更:Windowsサポートが追加されました。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
split
(path)¶
パス名pathをペアに分割し、(head, tail)
ここで、tailは最後のパス名コンポーネントであり、headはそれに至るすべてです。 パスがスラッシュで終わる場合、tailは空になります。 Pathにスラッシュがない場合、headは空になります。 Pathが空の場合、headとtailの両方が空になります。 末尾のスラッシュは、それがルートでない限り、頭からストリッピングされます(一つ以上のスラッシュのみ)。 すべての場合、join(head, tail)
はpathと同じ場所へのパスを返します(ただし、文字列は異なる場合があります)。 関数dirname()
およびbasename()
も参照してください。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
splitdrive
(path)¶
パス名pathをペア(drive, tail)
に分割します。 Drivespecificationsを使用しないシステムでは、driveは常に空の文字列になります。 すべての場合、drive+ tail
はpathと同じになります。
Windowsでは、パス名をドライブ/UNC sharepointと相対パスに分割します。
パスにドライブ文字が含まれている場合、ドライブにはコロンまでのすべてが含まれます。例えば、 splitdrive("c:/dir")
は("c:", "/dir")
を返しますパスにUNCパスが含まれている場合、ドライブにはホスト名と共有が含まれます。たとえば、splitdrive("//host/computer/dir")
が返されます("//host/computer", "/dir")
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
splitext
(path)¶
パス名pathをroot + ext ==path
となるようなペア(root, ext)
に分割し、extが空であるか、ピリオドで始まり、最大oneperiodを含みます。 ベース名の先頭のピリオドは無視されます。splitext('.cshrc')
は('.cshrc', '')
を返します。
バージョン3.6で変更:パスのようなオブジェクトを受け入れます。
os.path.
supports_unicode_filenames