Python Pathlibライブラリ

1695 ワード

深い学習訓練データセットを準備する際には,データセットが存在する文集クリップを操作する必要があることが多い.
たとえば、いくつかのピクチャのパス情報を取得し、パスリストを生成して後期datasetの準備をします.
 
Pythonには多くの操作経路のライブラリがあり、Pathlibは使いやすいライブラリの一つです.
たとえば、画像データを収集したフォルダは次のとおりです.
.
└── images
    ├── cat
    │   ├── 1.jpg
    │   ├── 2.jpg
    │   └── 3.jpg
    ├── dog
    │   ├── 1.jpg
    │   ├── 2.jpg
    │   └── 3.jpg
    └── pig
        ├── 1.jpg
        ├── 2.jpg
        └── 3.jpg
  • 全てのピクチャパスを含むリストを取得したい:
  • import pathlib
    
    root_dir = pathlib.Path("./")
    all_img_path = root_dir.glob('**/*.jpg')
    
    print(all_img_path) # output: 
    print(list(all_img_path)) # output: [PosixPath('images/dog/3.jpg'), PosixPath('images/dog/2.jpg'), PosixPath('images/dog/1.jpg'), PosixPath('images/pig/3.jpg'), PosixPath('images/pig/2.jpg'), PosixPath('images/pig/1.jpg'), PosixPath('images/cat/3.jpg'), PosixPath('images/cat/2.jpg'), PosixPath('images/cat/1.jpg')]
    
    all_img_path = [str(path) for path in all_img_path]
    print(all_img_path) # output: ['images/dog/3.jpg', 'images/dog/2.jpg', 'images/dog/1.jpg', 'images/pig/3.jpg', 'images/pig/2.jpg', 'images/pig/1.jpg', 'images/cat/3.jpg', 'images/cat/2.jpg', 'images/cat/1.jpg']
  • 特定のタイプのファイルを検索する:
  • pathlib.Path(./)が返すオブジェクトには、glob機能が強力な方法がたくさんあります.
    root_dir.glob('**/*.jpg')の**は、現在のディレクトリから最も深いディレクトリまでを表します.
    jpg文集は実際には現在のディレクトリの2級ディレクトリである.
    したがって、次のようになります.
    root_dir.glob('*/*.jpg')はroot_に等しいdir.glob('*/*/*.jpg')