Maison >développement back-end >Tutoriel Python >Pourquoi os.listdir() renvoie-t-il les sous-répertoires dans un ordre non alphanumérique ?
Ordre de liste non alphanumérique à partir de os.listdir() revisité
Dans la fonction os.listdir() de Python, la liste par défaut des sous-répertoires est souvent renvoyé dans un ordre apparemment illogique. Par exemple, un répertoire contenant des sous-dossiers nommés « run01 » à « run20 » peut donner une liste comme celle-ci :
['run01', 'run18', 'run14', 'run13', 'run12', 'run11', 'run08', ... ]
Contrairement à l'ordre alphanumérique précédent, ce nouvel ordre peut sembler absurde.
Comprendre l'ordre
L'ordre de la liste renvoyée par os.listdir() est déterminé par le système de fichiers sous-jacent. Différents systèmes de fichiers utilisent divers algorithmes de tri qui donnent la priorité à différentes propriétés, telles que l'horodatage de création ou la taille du fichier. Cette variation dans le comportement du système de fichiers peut conduire à un ordre de liste incohérent sur différentes plates-formes ou appareils.
Solution
Pour obtenir l'ordre alphanumérique souhaité, vous pouvez utiliser la fonction intégrée de Python fonction triée ou la méthode .sort d'une liste :
sorted_dir = sorted(os.listdir(os.getcwd()))
dir = os.listdir(os.getcwd()) dir.sort()
Ces deux approches trieront la liste des sous-répertoires en caractères alphanumériques order.
Considérations supplémentaires
Il est important de noter que l'ordre d'origine de la liste os.listdir() est déterminé par le système de fichiers. Par conséquent, les méthodes décrites ci-dessus réorganisent simplement la liste plutôt que de modifier l'ordre sous-jacent géré par le système de fichiers.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!