os.listdir() の英数字以外のリストの順序を再確認
Python の os.listdir() 関数のデフォルトのサブディレクトリのリスト一見非論理的な順序で返されることがよくあります。たとえば、「run01」から「run20」という名前のサブフォルダーを含むディレクトリは、次のようなリストを生成します。
['run01', 'run18', 'run14', 'run13', 'run12', 'run11', 'run08', ... ]
以前の英数字の順序とは異なり、この新しい順序は無意味に見える可能性があります。
順序を理解する
os.listdir() によって返されるリストの順序は、基礎となるファイルシステムによって決まります。さまざまなファイルシステムでは、作成タイムスタンプやファイル サイズなど、さまざまなプロパティを優先するさまざまな並べ替えアルゴリズムが採用されています。ファイルシステムの動作にこのようなばらつきがあると、異なるプラットフォームやデバイス間でリストの順序に一貫性がなくなる可能性があります。
解決策
希望の英数字の順序を取得するには、Python の組み込み関数を利用できます。 sorted 関数またはリストの .sort メソッド:
sorted_dir = sorted(os.listdir(os.getcwd()))
dir = os.listdir(os.getcwd()) dir.sort()
これらのアプローチはどちらも、サブディレクトリのリストを英数字順に並べ替えます。
追加の考慮事項
os.listdir() リストの元の順序はファイルシステムによって決定されることに注意することが重要です。したがって、上記のメソッドは、ファイルシステムによって管理されている基本的な順序を変更するのではなく、単にリストの順序を変更するだけです。
以上がos.listdir() が英数字以外の順序でサブディレクトリを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。