1. ホーム
  2. python

[解決済み] os.listdir() による非英数字のリストオーダー

2022-04-24 16:48:57

質問

私はよくpythonを使ってデータのディレクトリを処理します。最近、リストのデフォルトの順序がほとんど無意味なものに変更されていることに気づきました。例えば、私が次のサブディレクトリを含むカレントディレクトリにいるとします:run01, run02, ... run19, run20, そして、私は次のコマンドからリストを生成します。

dir = os.listdir(os.getcwd())

を選択すると、通常はこのような順序でリストが表示されます。

dir = ['run01', 'run18', 'run14', 'run13', 'run12', 'run11', 'run08', ... ]

といった具合です。以前は英数字の順番でした。でも、この新しい順番はしばらく残っています。

これらのリストの(表示)順番は、何によって決められているのでしょうか?

解決方法は?

この順番は、ファイルがFileSystem上でインデックスされる方法と関係があると思います。 もし、本当に順番を守りたいのであれば、ファイルを取得した後にリストをソートすることができます。