דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מתכנת חובבמ מתכנת חובב

    אם כבר התחלתי להתעסק עם האשים אז הלכתי צעד קטן קדימה ובניתי סקריפט קטן בפייתון שעובר על כל הקבצים בתיקייה ומוצא קבצים כפולים
    ארבע הערות:
    א' הסקריפט לא בודק תתי - תיקיות
    ב' הסקריפט יראה רק אחד מהקבצים הכפולים ולא את שניהם
    ג' הסקריפט מיועד בעיקר לכאלו שרוצים ללמוד קצת פייתון - בשביל הפעולה הזאת קיימות כבר הרבה תוכנות מעולות (כולל אופציה נהדרת ב 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
                        • חוקי הפורום
                        • פופולרי
                        • לא נפתר
                        • משתמשים
                        • חיפוש גוגל בפורום
                        • צור קשר