osモジュールのscandirメソッド

メソッド scandir は、フォルダ内にあるファイルと サブフォルダを反復処理します。 メソッドのパラメータでフォルダへのパスを指定します。メソッド は os.DirEntry オブジェクトを返します。

構文

pythonimport os

os.scandir(ディレクトリへのパス)

例

私たちのディレクトリの構造を確認してみましょう:

pythonimport os

print(os.scandir('dir'))

コードを実行した結果、 os.DirEntry オブジェクトが 得られます:

python<nt.ScandirIterator object at 0x000001478707FF00>

例

では、得られたオブジェクトをループで反復処理してみましょう。 ループ終了後、システムリソースを解放するために、 メソッド scandir を使用して反復処理を閉じる必要があります:

pythonimport os

for file in os.scandir('dir'):
  print(file)

  os.scandir('dir').close()

実行されたコードの結果:

python<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>

例

また、得られたオブジェクトに属性 name を適用することで、 ファイル名のみを出力することもできます:

pythonimport os

for file in os.scandir('dir'):
  print(file.name)

  os.scandir('dir').close()

実行されたコードの結果:

pythondir1
file1.txt
file2.txt

関連項目

  • DirEntry オブジェクト (osモジュール)、
    反復可能なファイルとサブフォルダを含みます
  • getcwd メソッド (osモジュール)、
    現在のワーキングディレクトリを返します
  • makedirs メソッド (osモジュール)、
    ディレクトリを作成します
  • rmtree メソッド (shutilモジュール)、
    フォルダを再帰的に削除します
  • copytree メソッド (shutilモジュール)、
    フォルダを再帰的にコピーします
  • path.join メソッド (osモジュール)、
    パスを結合します