Skip to content

os#

path・情報取得#

メソッド 説明
os.sep パス区切り文字の取得
os.getcwd() カレントディレクトリを取得
os.chdir(path) 指定したカレントディレクトリへ移動
os.listdir(path) パス配下のファイル・ディレクトリのリストを取得
os.path.join(path1,path2) パスの結合
os.path.split(path) パスの末尾を取得
os.path.abspath(相対path) 指定した相対パスの絶対パスを取得
os.path.relpath(path,起点のpath) 起点パスからみたパスの相対パスを取得
os.path.exists(path) パスの存在を判定
os.path.isdir(path) 指定したパスがパスか否かを判定
os.path.isfile(path) 指定したパスがファイルか否かを判定
os.path.splitext(path) 指定したパスの拡張子とその手前までの文字列を取得
os.walk(path) パス配下を走査、"topdown=False"の引数で逆向きに
os.scandir(path) ディレクトリやファイルの情報をイテレータで生成
os.path.basename(path) 末尾のファイル名部分を取得する
os.path.dirname(path) ディレクトリ名部分を取得する
os.path.getsize(path) ファイルサイズを取得する
os.path.getctime(path) 作成日時を取得する
os.path.getmtime(path) 更新日時を取得する
os.path.getatime(path) 最終アクセス日時を取得する

操作#

メソッド 説明
os.rename(path) ファイルの名前変更
os.replace(src, dst) ファイルまたはディレクトリ src の名前を dst へ変更。dst がディレクトリの場合 OSError。
os.rmdir(path) ディレクトリパスを削除(削除)。ディレクトリが存在しないか空でない場合、それぞれFileNotFoundErrorまたはOSError
os.renames(old, new) 再帰的にディレクトリやファイル名を変更`
os.mkdir(path) 指定したパスのディレクトリを新規作成
os.makedirs(path) 指定したパスのディレクトリを再帰的に新規作成
os.remove(path) 指定したファイルまたはディレクトリを削除
os.removedirs(path) 再帰的にディレクトリを削除する
os.chmod(path, mode) パーミッション変更
os.chown(path, uid, gid) 所有者変更

os.walk#

os.walk()関数は それぞれ以下のディレクトリの情報を含むタプル(dirPath, dirs, files)を返す。

  • dirPath: ディレクトリのパス(文字列)
  • dirs: ディレクトリに含まれるディレクトリのリスト(文字列のリスト)
  • files: ディレクトリに含まれるファイルのリスト(文字列のリスト)
import os,re
from pprint import pprint

# 対象ディレクトリと検索パターンの定義
target = r"対象ディレクトリ"
ptrn = re.compile(r"md")

path_list = [
    # 検索条件にマッチしたファイルに絶対パスを付ける
    # os.path.abspath(file) とも記述可能
    os.path.join(dirPath + '/' + file)
    for dirPath, dirs, files in os.walk(target) 
    for file in files 
    # パターンにマッチしたファイルのみ抽出
    if ptrn.search(file)
    ]

pprint(path_list)

Info

戻り値をタプルとして受け取らない場合は、以下のように記述

path_list = [
    # 検索条件にマッチしたファイルに絶対パスを付ける
    # os.path.abspath(file) とも記述可能
    os.path.join(dirPath + '/' + file)
    for dirPath, _, _ in os.walk(target) 
    for file in files 
    # パターンにマッチしたファイルのみ抽出
    if ptrn.search(file)
    ]