Pourquoi os.listdir() renvoie-t-il les sous-répertoires dans un ordre non alphanumérique ?

Susan Sarandon
Libérer: 2024-11-11 12:27:02
original
276 Les gens l'ont consulté

Why Does os.listdir() Return Subdirectories in a Non-Alphanumeric Order?

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', ... ]
Copier après la connexion

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 :

  • Utilisation sorted(os.listdir()) :
sorted_dir = sorted(os.listdir(os.getcwd()))
Copier après la connexion
  • Utilisation de .sort() :
dir = os.listdir(os.getcwd())
dir.sort()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal