osモジュールのscandirメソッド
メソッド scandir は、フォルダ内にあるファイルと
サブフォルダを反復処理します。
メソッドのパラメータでフォルダへのパスを指定します。メソッド
は os.DirEntry オブジェクトを返します。
構文
import os
os.scandir(ディレクトリへのパス)
例
私たちのディレクトリの構造を確認してみましょう:
import os
print(os.scandir('dir'))
コードを実行した結果、 os.DirEntry オブジェクトが
得られます:
<nt.ScandirIterator object at 0x000001478707FF00>
例
では、得られたオブジェクトをループで反復処理してみましょう。
ループ終了後、システムリソースを解放するために、
メソッド scandir を使用して反復処理を閉じる必要があります:
import os
for file in os.scandir('dir'):
print(file)
os.scandir('dir').close()
実行されたコードの結果:
<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>
例
また、得られたオブジェクトに属性 name を適用することで、
ファイル名のみを出力することもできます:
import os
for file in os.scandir('dir'):
print(file.name)
os.scandir('dir').close()
実行されたコードの結果:
dir1
file1.txt
file2.txt