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 :

comment utiliser ce snippet


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Par défaut comment utiliser ce snippet
    Hello,
    j'ai trouvé ce snippet à prioro pour comparer deux dossiers de maniere recursive mais étant grand debutant en python je ne comprend pas comment l'utiliser.
    Pourriez-vous m'expliquer ?

    Merci


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #!/usr/bin/env python3
    import argparse
    from filecmp import dircmp
    from os.path import getsize
     
    changed_files = {}
    deleted_files = {}
    added_files = {}
     
    def diff_file_size(file1, file2):
      return getsize(file2) - getsize(file1)
     
    def diff_report():
      for k, v in deleted_files.items():
        print(k, v)
     
      for k, v in added_files.items():
        print(k, v)
     
      for k, v in changed_files.items():
        print(k, v)
     
    def compare_dir(dir):
      for changed_file in dir.diff_files:
        file1 = "{0}/{1}".format(dir.left, changed_file)
        file2 = "{0}/{1}".format(dir.right, changed_file)
        changed_files[ file2 ] = diff_file_size(file1, file2)
     
      for deleted_file in dir.left_only:
        file1 = "{0}/{1}".format(dir.right, deleted_file)
        deleted_files[ file1 ] = "DELETED!"
     
      for added_file in dir.right_only:
        file1 = "{0}/{1}".format(dir.right, added_file)
        added_files[ file1 ] = "ADDED!"
     
      for sub_dir in dir.subdirs.values():
        compare_dir(sub_dir)
     
    def main():
      parser = argparse.ArgumentParser(description="Usage for diff_dir.py")
      parser.add_argument('--dir1', type=str, required=True)
      parser.add_argument('--dir2', type=str, required=True)
      args = parser.parse_args()
     
      #dir = dircmp(args.dir1, args.dir2)
      dir = dircmp(args.dir1, args.dir2)
      compare_dir(dir)
      diff_report()
     
    if __name__ == '__main__':
      main()

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Tu enregistres ce code dans un fichier "xxx.py" puis tu demandes à Python d'eécuter ledit fichier en lui passant les deux dossiers à comparer sous forme d'option "--dir" => exemple python3 xxx.py --dir1=dossier_1 --dir2=dossier_2.

    Et si tu rends le fichier exécutable en lui rajoutant le droit "x" tu peux alors l'exécuter directement sans passer par Python => ./xxx.py --dir1=dossier_1 --dir2=dossier_2 (c'est la première ligne #!/usr/bin/env python3 qui indique à l'OS que c'est Python v3 qui est en charge de l'exécution).
    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]

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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