So zerlegen Sie Fotos und Videos mithilfe von Python anhand ihrer Daten in Ordner





Jeder kennt die Trümmer von Fotos und Videos, die nach dem Kopieren von Geräten jahrelang ruhen.



Dies gilt insbesondere für das iPhone, das iPad, das beim direkten Kopieren (ohne iTunes)

Ablagerungen von Medieninhalten erzeugt. Wie können Sie alles nach Jahr und Monat sortieren?



Ja, es gibt eine Synchronisation, ja, Sie können alles auf einmal sortieren. Aber ...



Jemand zieht es vor, nichts anzufassen, da die Einheit der Deponie beobachtet wird, unternimmt jemand schüchterne Versuche, alles zu zersetzen, was sich zumindest im Laufe der Jahre angesammelt hat.



Zweifellos wird es durch den Dirigenten in der Tabellenansicht nicht schwierig sein, all dies manuell zu streuen, aber Sie beginnen, alte Fotos zu betrachten, und der Vorgang wird verzögert.



Daher werden wir ein einfaches Programm schreiben, das Dateien in einem Ordner nach Jahren mit Monaten zerlegt:











Das Programm bestimmt selbst das Datum und "schaut" auf das Datum der Dateiänderung:







Warum verwenden wir das Änderungsdatum und nicht das Dateierstellungsdatum?

In der Regel gibt sie das Datum der Datei korrekter an als ihr Namensvetter.



Module beim Start importieren:

import os,time
import datetime
import shutil


Wir empfehlen dem Benutzer, den Pfad (Windows) in den Ordner mit den Dateien zu kopieren:



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


Lassen Sie uns die Funktion zum Erstellen von Ordnern mit Monaten von 01 bis 12 einführen (verzeihen Sie mir das Fehlen von f'-Zeilen):



#    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))


Die folgende Funktion verarbeitet das aus der Foto- / Videodatei erhaltene Datum:



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


Wenn Sie nun den Ordner durchgehen, sammelt das Programm alle Dateierweiterungen und

bestimmt gleichzeitig, welches Jahr die Datei hat. Für jedes Jahr wird ein eigener Ordner erstellt, in dem

Ordner mit Monaten erstellt werden:



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)


* So können Sie Dateien in Ordnern mit völlig anderen (beliebigen) Erweiterungen verteilen, nicht nur in jpeg, mov, mkv.



Lassen Sie uns den Ordner mit dem Foto-Dump noch einmal durchgehen und die Fotos nun in die entsprechenden, neu erstellten Ordner übertragen:



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:
    (' ')


Da das Programm mit einem Fehler beendet wird, ohne die letzte Datei in der Schleife zu finden, was sich nicht auf die korrekte Ausführung auswirkt, wird eine Krücke aus try verwendet, außer die Wachsamkeit beeindruckbarer Personen, die Rötungen in der Konsole erhalten, trübt.



PS: Der Beitrag gibt nicht vor, wissenschaftlich zu sein, aber vielleicht hilft er jemandem, die Foto- / Video-Dumps zu besiegen. Laden Sie das



Programm herunter .



All Articles