IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

listdir() on en parle ?


Sujet :

Python

  1. #1
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut listdir() on en parle ?
    bonjour,

    quand est-ce que les pythons se sont dit : "ok, on va lister les fichiers, mais on va appeler la commande "lister les répertoires"" ?
    pour rappel :
    Citation Envoyé par help(os.listdir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Return a list containing the names of the files in the directory.
    pourquoi ?

    serait-ce pour list dir content ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    J'aime bien ce genre de question, car ça m'oblige à relire la doc
    Dans l'immédiat je pense qu'on peut apporter une réponse simple:
    os.listdir(path='.')

    Return a list containing the names of the entries in the directory given by path. The list is in arbitrary order, and does not include the special entries '.' and '..' even if they are present in the directory. If a file is removed from or added to the directory during the call of this function, whether a name for that file be included is unspecified.
    J'ai mis en gras les passages intéressants.

    Alternative: scandir:
    os.scandir(path='.')

    Return an iterator of os.DirEntry objects corresponding to the entries in the directory given by path. The entries are yielded in arbitrary order, and the special entries '.' and '..' are not included. If a file is removed from or added to the directory after creating the iterator, whether an entry for that file be included is unspecified.

    Using scandir() instead of listdir() can significantly increase the performance of code that also needs file type or file attribute information, because os.DirEntry objects expose this information if the operating system provides it when scanning a directory. All os.DirEntry methods may perform a system call, but is_dir() and is_file() usually only require a system call for symbolic links; os.DirEntry.stat() always requires a system call on Unix but only requires one for symbolic links on Windows.
    De manière générale, utiliser un itérateur apporte de meilleures performances vs une liste qui doit être alimentée entièrement avant de pouvoir être consommée.

    PS: il y aussi pathlib qui fournit ce genre de fonction.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par N_BaH Voir le message
    quand est-ce que les pythons se sont dit : "ok, on va lister les fichiers, mais on va appeler la commande "lister les répertoires"" ?
    Si la fonction se nommait turlututu, vous n’essaieriez pas de la traduire en français.... peut être que vous trouveriez un mot plus facile à retenir (pour en faire un alias à...) en fonction de ce que ça raconte faire: "Return a list containing the names of the entries in the directory given by path." Et avec une culture outre-atlantique, piquer les bouts en gras pour en faire un nouveau mot se fait assez naturellement.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par N_BaH Voir le message
    quand est-ce que les pythons se sont dit : "ok, on va lister les fichiers, mais on va appeler la commande "lister les répertoires"" ?
    "list" non pas pour "lister" mais pour "list, objet Python représentant les tableaux". D'où listdir="ensemble des fichiers du répertoire (directory) regroupés dans un tableau (une liste)".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    En dehors de ces problèmes d'appellation, il existe d'autres façons d'obtenir la liste des fichiers d'un répertoire donné, y compris de façon récursive (avec les sous-répertoires): glob.glob et os.walk. Manifestement, les noms de ces 2 fonctions sont encore moins explicites.

    La fonction glob est particulièrement simple d'utilisation, y compris dans son utilisation récursive (https://www.developpez.net/forums/d1...ive-glob-glob/).

    La fonction os.walk a le plus souvent ma préférence parce qu'elle permet une gestion rigoureuse des éventuelles erreurs.

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'aime bien os.walk aussi, je trouve son nom assez parlant j'imagine un bonhomme entrain de parcourir les fichiers et sous-dossiers...

Discussions similaires

  1. [Python][RE] Il parle à qui ?
    Par razord dans le forum Général Python
    Réponses: 3
    Dernier message: 15/02/2006, 20h30
  2. Mon pc me parle
    Par m.schar dans le forum Composants
    Réponses: 7
    Dernier message: 14/10/2005, 22h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo