كيفية تحليل الصور ومقاطع الفيديو إلى مجلدات بناءً على تواريخها باستخدام بيثون





الجميع على دراية بأنقاض الصور ومقاطع الفيديو التي بقيت لسنوات بعد نسخها من الأجهزة.



ينطبق هذا بشكل خاص على أجهزة iphone و ipad ، التي ، عند نسخها مباشرة (بدون itunes) ، تنشئ

إيداعات لمحتوى الوسائط. كيف يمكنك فرزها حسب السنة والشهر؟



نعم ، هناك مزامنة ، نعم ، يمكنك فرز كل شيء مرة واحدة. لكن ...



شخص ما يفضل عدم لمس أي شيء ، حيث يتم ملاحظة وحدة المكب ، يقوم شخص ما بمحاولات خجولة لتحليل كل شيء تراكم على الأقل على مر السنين



مما لا شك فيه أنه من خلال المستكشف وباستخدام المنظر الجدولي لن يكون من الصعب تشتيت كل هذا يدويًا ، لكنك تبدأ في النظر إلى الصور القديمة ، وتتأخر العملية.



لذلك ، سنقوم بكتابة برنامج بسيط يقوم بتحليل الملفات في مجلد حسب السنوات التي تحتوي على أشهر:











سيحدد البرنامج بنفسه التاريخ ، "يبحث" في تاريخ تعديل الملف:







لماذا نستخدم تاريخ التعديل ، وليس تاريخ إنشاء الملف؟

كقاعدة عامة ، تشير إلى تاريخ الملف بشكل صحيح أكثر من الإشارة إلى اسمها.



استيراد الوحدات عند بدء التشغيل:

import os,time
import datetime
import shutil


نقترح على المستخدم نسخ المسار (windows) إلى المجلد الذي يحتوي على الملفات:



p=input('    . : E:/\1')
os.chdir(p)


دعنا نقدم وظيفة إنشاء مجلدات بأشهر من 01 إلى 12 (سامحني لعدم وجود سطور):



#    01  12
def d():
    for x in range (1,13):
        if x>9:
            if not os.path.exists(str(x)):
                os.makedirs(str(x))
        else:
            if not os.path.exists('0'+str(x)):
                os.makedirs('0'+str(x))


ستعالج الوظيفة التالية التاريخ الذي تم الحصول عليه من ملف الصورة / الفيديو:



def mod_date(file):
    t = os.path.getmtime(file)
    return datetime.datetime.fromtimestamp(t)


الآن ، من خلال تصفح المجلد ، سيقوم البرنامج بتجميع جميع امتدادات الملفات ، وفي نفس الوقت ،

تحديد السنة التي يحتوي عليها الملف. لكل عام ، سيتم إنشاء مجلد خاص به ، وفيه سيتم إنشاء

مجلدات بها أشهر:



a=[] #['AAE', 'MOV', 'JPG', 'PNG']
for root, dirs, files in os.walk(p):    
    for file in files:
        if file[-3:] not in a:
            a.append(file[-3:])
        if file[-3:] in a:
            year=str(mod_date(file))[:10][:4]            
            if not os.path.exists(year):
                os.makedirs(year)
            os.chdir(p+'/'+year)            
            d()
            os.chdir(p)


* وبالتالي ، يمكنك تشتيت الملفات ذات الامتدادات المختلفة (أي) في مجلدات ، وليس فقط jpeg ، mov ، mkv.



دعنا ننتقل إلى المجلد الذي يحتوي على ملف تفريغ الصور مرة أخرى ، وننقل الآن الصور إلى المجلدات المقابلة التي تم إنشاؤها حديثًا:



try:
    for root, dirs, files in os.walk(p):    
        for file in files:
                if file[-3:] in a:
                    year=str(mod_date(file))[:10][:4]                    
                    month=str(mod_date(file))[:10][5:7] #  
                    shutil.move(file, year+'/'+month+'/'+file) #   
except EnvironmentError:
    (' ')


نظرًا لأن البرنامج ينتهي بخطأ ، دون العثور على الملف الأخير في الحلقة ، والذي لا يؤثر على تنفيذه الصحيح ، يتم استخدام عكاز من المحاولة ، باستثناء ذلك ، مما يقلل من يقظة الأشخاص القابلين للتأثر الذين يتلقون احمرارًا في وحدة التحكم.



ملاحظة: لا يتظاهر المنشور بأنه علمي ، ولكن ربما يساعد شخصًا ما في التغلب على مقالب الصور / الفيديو. قم بتنزيل



البرنامج .



All Articles