דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. כללי - עזרה הדדית
  3. שיתוף | סקריפט קטן ופשוט למציאת קבצים כפולים בתוך תיקיה

שיתוף | סקריפט קטן ופשוט למציאת קבצים כפולים בתוך תיקיה

מתוזמן נעוץ נעול הועבר כללי - עזרה הדדית
12 פוסטים 3 כותבים 380 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מתכנת חובבמ מנותק
    מתכנת חובבמ מנותק
    מתכנת חובב
    מדריכים
    כתב ב נערך לאחרונה על ידי מתכנת חובב
    #1

    אם כבר התחלתי להתעסק עם האשים אז הלכתי צעד קטן קדימה ובניתי סקריפט קטן בפייתון שעובר על כל הקבצים בתיקייה ומוצא קבצים כפולים
    ארבע הערות:
    א' הסקריפט לא בודק תתי - תיקיות
    ב' הסקריפט יראה רק אחד מהקבצים הכפולים ולא את שניהם
    ג' הסקריפט מיועד בעיקר לכאלו שרוצים ללמוד קצת פייתון - בשביל הפעולה הזאת קיימות כבר הרבה תוכנות מעולות (כולל אופציה נהדרת ב CCleaner)
    ד' הסקריפט משווה את תוכן הקבצים ולא את השמות - כך שגם קבצים עם שמות שונים אבל תוכן זהה יזוהו אבל לא קבצים עם שם זהה ותוכן שונה

    import hashlib
    import os
    
    def hashfile(file):
        os.chdir(dir_name)
        sha256 = hashlib.sha256()
        try:
            with open(file, 'rb') as f:     
                while True:
                    data = f.read(65536)
                    if not data:
                        break
                    sha256.update(data)
            return sha256.hexdigest()
        except:
            pass
    
    
    list_of_hashs = []
    duplicate_files = []
    
    dir_name = input("enter full path : ")
    dir_name = dir_name.replace('"', "")
    for file in os.listdir(dir_name):
        current_hash = hashfile(file)
        if not current_hash in list_of_hashs:
            list_of_hashs.append(current_hash)
        else:
            duplicate_files.append(file)
    
    
    print(*duplicate_files, sep='\n')
    
    NH.LOCALN ס 2 תגובות תגובה אחרונה
    4
    • מתכנת חובבמ מתכנת חובב

      אם כבר התחלתי להתעסק עם האשים אז הלכתי צעד קטן קדימה ובניתי סקריפט קטן בפייתון שעובר על כל הקבצים בתיקייה ומוצא קבצים כפולים
      ארבע הערות:
      א' הסקריפט לא בודק תתי - תיקיות
      ב' הסקריפט יראה רק אחד מהקבצים הכפולים ולא את שניהם
      ג' הסקריפט מיועד בעיקר לכאלו שרוצים ללמוד קצת פייתון - בשביל הפעולה הזאת קיימות כבר הרבה תוכנות מעולות (כולל אופציה נהדרת ב CCleaner)
      ד' הסקריפט משווה את תוכן הקבצים ולא את השמות - כך שגם קבצים עם שמות שונים אבל תוכן זהה יזוהו אבל לא קבצים עם שם זהה ותוכן שונה

      import hashlib
      import os
      
      def hashfile(file):
          os.chdir(dir_name)
          sha256 = hashlib.sha256()
          try:
              with open(file, 'rb') as f:     
                  while True:
                      data = f.read(65536)
                      if not data:
                          break
                      sha256.update(data)
              return sha256.hexdigest()
          except:
              pass
      
      
      list_of_hashs = []
      duplicate_files = []
      
      dir_name = input("enter full path : ")
      dir_name = dir_name.replace('"', "")
      for file in os.listdir(dir_name):
          current_hash = hashfile(file)
          if not current_hash in list_of_hashs:
              list_of_hashs.append(current_hash)
          else:
              duplicate_files.append(file)
      
      
      print(*duplicate_files, sep='\n')
      
      NH.LOCALN מנותק
      NH.LOCALN מנותק
      NH.LOCAL
      מדריכים
      כתב ב נערך לאחרונה על ידי NH.LOCAL
      #2

      @מתכנת-חובב ברוך שכיוונתי / כיוונת. אני בדיוק עובד על משהו כזה דרך באט, עם שימוש באסימונים של פקודת פור (המעלה בזה שהוא מוצא גם קבצים עם שמות דומים ולאו דוקא שמות זהים)

      לכל הפרוייקטים שלי
      https://nhlocal.github.io

      מתכנת חובבמ תגובה 1 תגובה אחרונה
      2
      • NH.LOCALN NH.LOCAL

        @מתכנת-חובב ברוך שכיוונתי / כיוונת. אני בדיוק עובד על משהו כזה דרך באט, עם שימוש באסימונים של פקודת פור (המעלה בזה שהוא מוצא גם קבצים עם שמות דומים ולאו דוקא שמות זהים)

        מתכנת חובבמ מנותק
        מתכנת חובבמ מנותק
        מתכנת חובב
        מדריכים
        כתב ב נערך לאחרונה על ידי
        #3

        @NH-LOCAL הסקריפט שלי לא בודק שמות זהים אלא תוכן זהה

        NH.LOCALN תגובה 1 תגובה אחרונה
        0
        • מתכנת חובבמ מתכנת חובב

          @NH-LOCAL הסקריפט שלי לא בודק שמות זהים אלא תוכן זהה

          NH.LOCALN מנותק
          NH.LOCALN מנותק
          NH.LOCAL
          מדריכים
          כתב ב נערך לאחרונה על ידי NH.LOCAL
          #4

          @מתכנת-חובב מדהים! אם ככה, זה עדיף על סי-קלינר שרק בודק גודל או שם של קובץ
          ב. מה מהירות הסריקה של זה?

          לכל הפרוייקטים שלי
          https://nhlocal.github.io

          מתכנת חובבמ 2 תגובות תגובה אחרונה
          0
          • NH.LOCALN NH.LOCAL

            @מתכנת-חובב מדהים! אם ככה, זה עדיף על סי-קלינר שרק בודק גודל או שם של קובץ
            ב. מה מהירות הסריקה של זה?

            מתכנת חובבמ מנותק
            מתכנת חובבמ מנותק
            מתכנת חובב
            מדריכים
            כתב ב נערך לאחרונה על ידי
            #5

            @NH-LOCAL סי קלינר יכול לבדוק גם תוכן

            NH.LOCALN תגובה 1 תגובה אחרונה
            1
            • מתכנת חובבמ מתכנת חובב

              @NH-LOCAL סי קלינר יכול לבדוק גם תוכן

              NH.LOCALN מנותק
              NH.LOCALN מנותק
              NH.LOCAL
              מדריכים
              כתב ב נערך לאחרונה על ידי NH.LOCAL
              #6

              @מתכנת-חובב למיטב ניסיוני עם התוכנה היא לא באמת בודקת תוכן

              לכל הפרוייקטים שלי
              https://nhlocal.github.io

              מתכנת חובבמ תגובה 1 תגובה אחרונה
              0
              • NH.LOCALN NH.LOCAL

                @מתכנת-חובב למיטב ניסיוני עם התוכנה היא לא באמת בודקת תוכן

                מתכנת חובבמ מנותק
                מתכנת חובבמ מנותק
                מתכנת חובב
                מדריכים
                כתב ב נערך לאחרונה על ידי
                #7

                @NH-LOCAL ולמיטב ניסיוני (הדי רב) היא בודקת

                NH.LOCALN תגובה 1 תגובה אחרונה
                0
                • מתכנת חובבמ מתכנת חובב

                  @NH-LOCAL ולמיטב ניסיוני (הדי רב) היא בודקת

                  NH.LOCALN מנותק
                  NH.LOCALN מנותק
                  NH.LOCAL
                  מדריכים
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @מתכנת-חובב מוזר. הייתי מצפה ממנה למצוא הרבה יותר קבצים ממה שהיא מוצאת אצלי (ויש לי יסוד סביר להניח שיש במאגר שלי המון כאלו)

                  לכל הפרוייקטים שלי
                  https://nhlocal.github.io

                  תגובה 1 תגובה אחרונה
                  0
                  • NH.LOCALN NH.LOCAL

                    @מתכנת-חובב מדהים! אם ככה, זה עדיף על סי-קלינר שרק בודק גודל או שם של קובץ
                    ב. מה מהירות הסריקה של זה?

                    מתכנת חובבמ מנותק
                    מתכנת חובבמ מנותק
                    מתכנת חובב
                    מדריכים
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @NH-LOCAL כתב בשיתוף | סקריפט קטן ופשוט למציאת קבצים כפולים בתוך תיקיה:

                    ב. מה מהירות הסריקה של זה?

                    לא הכי מהיר בעולם
                    בדקתי עכשיו השוואה בין 2 קבצים בגודל 1.7 ג'יגה כל אחד ולקח 8 שניות (מחשב נייח i5 דור 9 וכונן NVMe מדור שלישי בלי כרטיס מסך)

                    NH.LOCALN תגובה 1 תגובה אחרונה
                    0
                    • מתכנת חובבמ מתכנת חובב

                      @NH-LOCAL כתב בשיתוף | סקריפט קטן ופשוט למציאת קבצים כפולים בתוך תיקיה:

                      ב. מה מהירות הסריקה של זה?

                      לא הכי מהיר בעולם
                      בדקתי עכשיו השוואה בין 2 קבצים בגודל 1.7 ג'יגה כל אחד ולקח 8 שניות (מחשב נייח i5 דור 9 וכונן NVMe מדור שלישי בלי כרטיס מסך)

                      NH.LOCALN מנותק
                      NH.LOCALN מנותק
                      NH.LOCAL
                      מדריכים
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @מתכנת-חובב נחמד מאוד בהתחשב בגודל הקבצים, רוב הקבצים שוקלים הרבה פחות

                      לכל הפרוייקטים שלי
                      https://nhlocal.github.io

                      תגובה 1 תגובה אחרונה
                      0
                      • מתכנת חובבמ מתכנת חובב

                        אם כבר התחלתי להתעסק עם האשים אז הלכתי צעד קטן קדימה ובניתי סקריפט קטן בפייתון שעובר על כל הקבצים בתיקייה ומוצא קבצים כפולים
                        ארבע הערות:
                        א' הסקריפט לא בודק תתי - תיקיות
                        ב' הסקריפט יראה רק אחד מהקבצים הכפולים ולא את שניהם
                        ג' הסקריפט מיועד בעיקר לכאלו שרוצים ללמוד קצת פייתון - בשביל הפעולה הזאת קיימות כבר הרבה תוכנות מעולות (כולל אופציה נהדרת ב CCleaner)
                        ד' הסקריפט משווה את תוכן הקבצים ולא את השמות - כך שגם קבצים עם שמות שונים אבל תוכן זהה יזוהו אבל לא קבצים עם שם זהה ותוכן שונה

                        import hashlib
                        import os
                        
                        def hashfile(file):
                            os.chdir(dir_name)
                            sha256 = hashlib.sha256()
                            try:
                                with open(file, 'rb') as f:     
                                    while True:
                                        data = f.read(65536)
                                        if not data:
                                            break
                                        sha256.update(data)
                                return sha256.hexdigest()
                            except:
                                pass
                        
                        
                        list_of_hashs = []
                        duplicate_files = []
                        
                        dir_name = input("enter full path : ")
                        dir_name = dir_name.replace('"', "")
                        for file in os.listdir(dir_name):
                            current_hash = hashfile(file)
                            if not current_hash in list_of_hashs:
                                list_of_hashs.append(current_hash)
                            else:
                                duplicate_files.append(file)
                        
                        
                        print(*duplicate_files, sep='\n')
                        
                        ס מנותק
                        ס מנותק
                        סקרן 0
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @מתכנת-חובב איך משתמשים בזה? בסביבת עבודה של פייתון? Notepad++? משהו אחר?

                        מתכנת חובבמ תגובה 1 תגובה אחרונה
                        0
                        • ס סקרן 0

                          @מתכנת-חובב איך משתמשים בזה? בסביבת עבודה של פייתון? Notepad++? משהו אחר?

                          מתכנת חובבמ מנותק
                          מתכנת חובבמ מנותק
                          מתכנת חובב
                          מדריכים
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @סקרן-0 צריך פייתון מותקן על המחשב
                          אין קשר ל IDE (או ל notepad++)

                          תגובה 1 תגובה אחרונה
                          0

                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • חוקי הפורום
                          • פופולרי
                          • לא נפתר
                          • משתמשים
                          • חיפוש גוגל בפורום
                          • צור קשר