\

Pythonのosモジュールには、ディレクトリ内のファイル名を一覧表示するos.listdir()という関数があります。しかし、この関数を使ってファイル名を取得すると、ファイル名の順番は保証されません。

例えば、あるディレクトリにn1.csv, n2.csv, n3.csv, …, n13.csvというファイルがあるとします。これらのファイル名をos.listdir()で取得すると、['n1.csv', 'n10.csv', 'n11.csv', 'n12.csv', 'n13.csv', 'n2.csv', 'n3.csv', 'n4.csv', ...]のようになり、数字の順番がバラバラになってしまいます。

そこで、ファイル名を自然順(n1, n2, n3, …, n9, n10, …)にソートする方法を紹介します。

import os
from natsort import natsorted

path = "./light"
files = os.listdir(path)
sorted_files = natsorted(files)

print(sorted_files)

このコードでは、まずos.listdir()でファイル名のリストを取得し、次にnatsortライブラリのnatsorted()関数を使ってファイル名を自然順にソートしています。

なお、natsortライブラリは標準ライブラリではないので、使用する前にpip install natsortでインストールする必要があります。

以上が、Pythonでos.listdir()を使ってファイルを順番に読み込む方法です。この方法を使えば、ファイル名が数字で順番になっている場合でも、適切にファイルを順番に処理することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です