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 :

récupérer la taille d'un fichier.


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 106
    Par défaut récupérer la taille d'un fichier.
    Bonjour,

    Je voudrais copier une liste de fichier qui se trouve dans un dossier "d'origine" dans un autre dossier de "destination". Tous mes fichiers ont la même extension, et sont donc de différentes tailles. (10ko, 50ko, 150ko....)

    J'aimerai copier seulement les fichiers qui ont une taille inférieure à 20ko.

    Je n'arrive pas à trouver sur internet !!! Je vous donne un script que j'ai fait qui permet de copier tous les fichiers d'un répertoire à un autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import shutil
    import os
     
    source = os.listdir("C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierOrigine")
    destination = "C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierDestination"
     
    for files in source:
            if files.endswith(".wrl"):
                shutil.move(files,destination)
    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    La taille d'un fichier se récupère via os.path.getsize ou via l'attribut st_size de l'objet retourné par os.stat

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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 106
    Par défaut réponse
    Merci pour ta réponse. Je vais essayer de l'appliquer puis je mettrai la solution une fois finit.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 106
    Par défaut réponse
    J'ai réussi à copier 1 seul fichier inférieur à 20Ko. Si le fichier est supérieur à 20Ko, on le garde dans le dossier d'origine. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # Créé par fdu, le 21/01/2019 en Python 3.4
    import shutil
    import os
     
    source = os.listdir("C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierOrigine")
    destination = "C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierDestination"
     
    lefichier ="D21S-28352-004_1 [D21C-28352-000 - SA-A321-200].wrl"
    a = os.path.getsize(lefichier)
    b = a/1000
     
    print("La taille du fichier est de : ")
    print(b,"Ko")
     
    for files in source:
            if files.endswith(".wrl"):
                if ( a < 20000):
                    shutil.move(lefichier,destination)
                    print("Le fichier est inferieur a 20Ko et a bien ete copie dans le dossier de DESTINATION ...")
                else:
                    print("Le fichier est superieur a 20 Ko ! On garde les gros fichiers dans le dossier d'ORIGINE ...")
    Je vais essayer de le faire maintenant pour un ensemble de fichier, se trouvant dans le dossier d'origine, et copier donc les fichiers inférieur à 20Ko dans le dossier de destination.
    Si quelqu'un a une solution, je suis preneur.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Relisez votre code, comme la valeur de a ne change pas en fonction du fichier traité dans la boucle, çà ne fait pas ce que vous racontez/espérez.

    Ceci dit, faire une boucle sur une liste d'objets en sélectionnant ceux qui remplissent une ou plusieurs conditions est ce qu'on apprend à faire d'abord avec des listes d'entiers ou de chaînes de caractères.
    L'avantage est que les conditions initiales peuvent être les mêmes à chaque fois.
    Avec des fichiers, vous modifiez ces conditions initiales à chaque fois...
    Mais après tout ce ne sont que vos fichiers...

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

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 106
    Par défaut réponse
    Oui je vois que ma valeur de 'a' est fixe et ne change pas !!! Je ne vois pas comment récupérer la taille de mes fichiers et faire des conditions dessus ! J'essaie plein de trucs mais en vain ...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 106
    Par défaut Réponse finale
    C'est bon j'ai trouvé la SOLUTION finale. Je vous donne le code ci-dessous. Mon programme copie bien les fichiers < à 20Ko dans le dossier de destination (Ne sont plus dans le dossier d'origine)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # Créé par fdu, le 21/01/2019 en Python 3.4
    import shutil
    import os
     
    # CE PROGRAMME TRANSFERE LES PETITS FICHIERS DANS LE DOSSIER DE DESTINATION ET GARDE LES FICHIERS  > à 20Ko DANS LE DOSSIER D' ORIGINE
    # J'ai 3 fichiers < à 20 Ko et 2 fichiers > à 20 Ko
    # ===> Donc les 3 petits fichiers se transfère bien dans le dossier de DESTINATION
     
    source = os.listdir("C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierOrigine")
    destination = "C:/Users/fdu/Documents/MesDocumentsPersos/Programmation/Python/Investigation_Plusieurs-PG/DossierDestination"
     
    for files in source:
            if files.endswith(".wrl"):
                e = os.path.getsize(files)
                if ( e < 20000):
                    shutil.move(files,destination)
                    print("Les fichiers INFERIEUR a 20Ko ont ete bien copie dans le dossier de DESTINATION")
                else:
                    print("Les fichiers SUPERIEUR a 20 Ko reste dans le dossier d' ORIGINE !")
    Voilà

Discussions similaires

  1. Copier des fichiers dans un autre dossier
    Par SBRKH dans le forum Débuter
    Réponses: 3
    Dernier message: 09/01/2016, 10h42
  2. FTPClient: Déplacer un fichier dans un autre dossier du FTP
    Par thebestfriend dans le forum Général Java
    Réponses: 2
    Dernier message: 12/07/2011, 15h01
  3. Copier fichier dans un autre fichier
    Par yoyo0688 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2011, 12h27
  4. Fichier dans un autre dossier
    Par melreg dans le forum Fortran
    Réponses: 2
    Dernier message: 08/04/2009, 15h02
  5. transférer des fichiers dans un autre dossier de façon dynamique
    Par soria_t dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/08/2008, 16h28

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