Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ordre fichier os.listdir

21 juin 2019 à 11:14:36

Bonjour,

J'aimerai savoir pourquoi la fonction os.listdir() de python retourne les fichiers d'un répertoire dans un ordre différent de celui affiché par l'explorateur de Windows ?

La doc python indique que os.listdir() retourne la liste des fichiers dans un ordre arbitraire, des personnes sur internet pensent que l'ordre des fichiers est lié au 'filesystem". 

Avez vous une idée de comment os.listdir() ordonne la liste des fichiers ? 

Bonne journée !

  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2019 à 12:11:15

normalement c'est sur mac que ça fait ça sous windows c'est dans l'ordre, as tu donné une direction de lecture a tes fichiers ? 

numFichier = 0 

fichier = open("./tonDossier"+nomDeTaVariableDeOs.listdir, "r")

et tu ajoutes un input() pour ta variable numFichier pour choisir le fichier a lire 

  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2019 à 12:20:58

Je ne parle pas de lecture fichier, juste de l'ordre dans lequel la fonction os.listdir retourne le noms des fichier sdans la liste. Par exemple si j'ai dans un répertoire windows ces fichiers listés comme ceci :

bonjour.txt

Manger.xlsx

Dormir.csv

Ma fonction os.listdir va peut être me retourner un truc du style :

list = os.listdir()
print(list)
["Manger.xlsx","bonjour.txt","Dormir.csv"]

Ce que j'aimerai savoir pourquoi os.listdir retourne un ordre différent de celui de windows

-
Edité par Jojuss 21 juin 2019 à 12:21:19

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
21 juin 2019 à 13:08:52

Salut,

d'après la documentation de os.listdir(path), il retourne la liste produite de manière arbitraire donc nous ne pouvons malheureusement pas savoir comment il la crée.

Doc : https://docs.python.org/3/library/os.html

  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2019 à 15:17:24

Jojuss a écrit:

Avez vous une idée de comment os.listdir() ordonne la liste des fichiers ? 

Si la documentation indique qu'ils sont retournés dans un ordre arbitraire, c'est que vous devrez trier par vous même si l'ordre est important pour vous. Pour les détails, possible que CPython se contente de retourner ce que retourne le readdir de la bibliothèque C, retour qui dépend de l'implémentation du filesystem,...

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2020 à 15:32:59

bonjour qui est peut bien m'expliquer ce code ci:

cartes = []
for nom_fichier in os.listdir("cartes"):
if nom_fichier.endswith(".txt"):
chemin = os.path.join("cartes", nom_fichier)
nom_carte = nom_fichier[:-3].lower()
with open(chemin, "r") as fichier:
contenu = fichier.read()
  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2020 à 17:47:51

Bonjour, @alyasamba Merci de créer votre propre sujet, plutôt que de déterrer un sujet d'un autre membre.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par AbcAbc6 21 janvier 2020 à 17:49:11

  • Partager sur Facebook
  • Partager sur Twitter