Python3 os.path() モジュール
os.pathモジュールは Python 標準ライブラリのosモジュールの一部であり、ファイルパスの操作と処理に特化しています。
os.pathファイルおよびディレクトリのパスに対してさまざまな操作(ファイル名の取得、パスの存在確認、パスの結合、パスの正規化など)を行うための強力なツール群を提供します。
os.pathこのモジュールはクロスプラットフォームのオペレーティングシステムで優れた動作を示し、同じコードが異なるオペレーティングシステム(Windows、Linux、macOSなど)で実行されるときにパス関連の問題を処理できるようにします。
以下は os.path モジュールのいくつかの一般的なメソッドです:
パス操作
| メソッド | 説明 |
|---|---|
os.path.abspath(path) |
相対パスを絶対パスに変換します。 |
os.path.basename(path) |
パスの最後の部分(ファイル名)を取得します。 |
os.path.dirname(path) |
パス内のディレクトリ部分を取得します。 |
os.path.join(*paths) |
複数のパスを結合し、パス区切り文字を自動的に処理します。 |
os.path.split(path) |
パスをディレクトリとファイル名のタプルに分割します。 |
os.path.splitext(path) |
パスをファイル名と拡張子のタプルに分割します。 |
パス情報の取得
| メソッド | 説明 |
|---|---|
os.path.exists(path) |
パスが存在するかどうかを判定します。 |
os.path.isfile(path) |
パスがファイルかどうかを判定します。 |
os.path.isdir(path) |
パスがディレクトリかどうかを判定します。 |
os.path.getsize(path) |
ファイルのサイズをバイト単位で取得します。 |
os.path.getatime(path) |
ファイルの最終アクセス時間を取得します。 |
os.path.getmtime(path) |
ファイルの最終変更時間を取得します。 |
os.path.getctime(path) |
ファイルの作成時間を取得します(一部のオペレーティングシステムでは最終状態変更時間を表します)。 |
パスの正規化
| メソッド | 説明 |
|---|---|
os.path.normpath(path) |
パスを正規化し、冗長な区切り文字や相対パス記号を排除します。 |
os.path.realpath(path) |
ファイルの実際のパスを取得し、シンボリックリンクを解決します。 |
os.path.relpath(path, start=os.curdir) |
相対パスを計算します。start 到 path。 |
パスの比較
| メソッド | 説明 |
|---|---|
os.path.commonpath(paths) |
パスシーケンス内の共通パスを返します。 |
os.path.commonprefix(list) |
パスシーケンス内の最長共通接頭辞を返します。 |
os.path.samefile(path1, path2) |
2つのパスが同じファイルを指しているかどうかを判定します。 |
os.path.sameopenfile(fp1, fp2) |
2つの開いているファイルオブジェクトが同じファイルを指しているかどうかを判定します。 |
os.path.samestat(stat1, stat2) |
2つのファイルが同じstat状態を持っているかどうかを判定します。 |
プラットフォーム依存機能
| メソッド | 説明 |
|---|---|
os.path.splitdrive(path) |
Windows では、パスのドライブ/デバイス部分とパス部分のタプルを返します。 |
os.path.splitunc(path) |
パス内の共有デバイスとパス部分を分割します(Windows 固有)。 |
例
以下の例では、os.path 関連メソッドの使用法を示しています:
例
#!/usr/bin/env python
import os.path
# 現在のファイル名
print(__file__)
# 現在のファイル名の絶対パス
print( os.path.abspath(__file__) )
# 現在のファイルのパスを返します
print(os.path.dirname( os.path.abspath(__file__) ))
import os.path
# 現在のファイル名
print(__file__)
# 現在のファイル名の絶対パス
print( os.path.abspath(__file__) )
# 現在のファイルのパスを返します
print(os.path.dirname( os.path.abspath(__file__) ))
以下の例では、ファイルの関連情報を出力します。
test.py /サンプル/サンプル-test-py/test.py /サンプル/サンプル-test-py
例
#!/usr/bin/python3
import os
print( os.path.basename('/root/サンプル.txt') ) # ファイル名を返します
print( os.path.dirname('/root/サンプル.txt') ) # ディレクトリのパスを返します
print( os.path.split('/root/サンプル.txt') ) # ファイル名とパスを分割します
print( os.path.join('root','test','サンプル.txt') ) # ディレクトリとファイル名を1つのパスに結合します
上記のプログラムを実行すると、出力結果は次のようになります:
サンプル.txt
/root
('/root', 'サンプル.txt')
root/test/サンプル.txt
以下の例では、ファイルの関連情報を出力します。
例
import os
import time
file='/root/サンプル.txt' # ファイルパス
print( os.path.getatime(file) ) # 最近のアクセス時間を出力
print( os.path.getctime(file) ) # ファイルの作成時間を出力
print( os.path.getmtime(file) ) # 最近の変更時間を出力
print( time.gmtime(os.path.getmtime(file)) ) # struct_time形式で最近の変更時間を出力
print( os.path.getsize(file) ) # ファイルサイズを出力(バイト単位)
print( os.path.abspath(file) ) # 絶対パスを出力
print( os.path.normpath(file) ) # path 文字列形式を正規化
上記のプログラムを実行すると、出力結果は次のようになります:
1539052805.5735736 1539052805.5775735 1539052805.5735736 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=9, tm_hour=2, tm_min=40, tm_sec=5, tm_wday=1, tm_yday=282, tm_isdst=0) 7 /root/サンプル.txt /root/サンプル.txtその他の拡張機能
Python3 OS ファイル/ディレクトリメソッド