2021-08-03に投稿

Python 標準ライブラリ os.path パス名操作

パス名称の操作と、ファイルシステムへのアクセスを行うライブラリ。

パス操作

from os.path import *

# abspath(path) 絶対パス
abspath('./') #=> 'c:\\home\\some\path'

# relpath(path, start=os.curdir) 相対パスの取得
relpath(r"c:\home\some\path\test") # => 'test'

# basename(path) ファイル名
basename(r"c:\home\some\path\test.txt") # => 'test.txt'

# commonpath(paths) 共通するサブパス
commonpath([r"c:\home\some", r"c:\home\a", r"c:\home\b"] ) # => 'c:\\home'
commonpath([r"c:\home\some", r"d:\home\a", r".\home\b"] ) # => ValueError

# commonprefix(paths) パスに共通する接頭辞
commonprefix([r"c:\home\some", r"c:\home\a", r"c:\home\b"] ) # => 'c:\\home'
commonprefix([r"c:\home\some", r"d:\home\a", r".\home\b"] ) # => ''

# dirname(path) ディレクトリ名
dirname(r"c:\home\some\path\sample.txt") # => 'c:\\home\\some\\path'

# split(path) パスの分割(パスの先頭と、末尾)
split(r"c:\home\some\path\sample.txt") # => ('c:\\home\\some\\path', 'sample.txt')

# splitdrive(path) パスの分割(ドライブまたは空文字と、後半部)
splitdrive(r"c:\home\some\path\test") # => ('c:', '\\home\\some\\path\\test')

# splitext(path) パスの分割(先頭と、空文字またはピリオドを含む後半部)
splitext(r"c:\home\some\path\sample.txt") # => ('c:\\home\\some\\path\\sample', '.txt')

# join(path, *paths) 複数要素からのパスの構成
join('C:\\','WINDOWS\system32','notepad.exe') # => 'C:\\WINDOWS\\system32\\notepad.exe'

# normpath(path) パスの正規化
normpath('c:\\home\\..\\some') #=> 'c:\\some'

# normcase(path) パスの大文字小文字正規化
normcase(r'C:\Program Files (x86)') # => 'c:\\program files (x86)'

環境情報の取得

# expanduser(path) ユーザーのホームディレクトリの展開
expanduser(r"~\test") # => 'C:\\Users\\name\\test'

# expandvars(path) 環境変数の展開
expandvars("$ProgramFiles") # => 'C:\\Program Files'
expandvars("${SystemRoot}") # => 'C:\\WINDOWS'
expandvars("%PUBLIC%") # => 'C:\\Users\\Public'

ファイル・ディレクトリの情報

# exists(path) パスの存在
exists(r"c:\home\some\path\sample.txt") # => true

# lexists(path) パスの存在(シンボリックリンク true)
exists(r"c:\home\some\path\sample.txt") # => true

# islink(path) シンボリック判定
islink(r"c:\home\some\path\sample.txt") # => False

# isfile(path) ファイル判定
isfile(r'C:\WINDOWS\system32\notepad.exe') # => True

# isdir(path) ディレクトリ判定
isdir(r'C:\WINDOWS\system32') # => True

# getctime(path) ファイル・ディレクトリ作成時刻
getctime('C:\\Program Files') # => 1575710092.147417

# getatime(path) ファイル・ディレクトリ更新時刻
import time
time.gmtime(getatime('C:\\Program Files'))
# => time.struct_time(tm_year=2021, tm_mon=7, tm_mday=28, tm_hour=13, tm_min=50, tm_sec=17, tm_wday=2, tm_yday=209, tm_isdst=0)

# getsize(path) path のサイズ(バイト数)
getsize(r'C:\WINDOWS\system32\notepad.exe') # => 211968

# isabs(path) 絶対パス判定
isabs(r'C:\WINDOWS\system32\notepad.exe') # => True
Originally published at marusankakusikaku.jp
ツイッターでシェア
みんなに共有、忘れないようにメモ

maru3kaku4kaku

Pythonこつこつ学習中。よく忘れる。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント