Comment décomposer des photos, des vidéos dans des dossiers en fonction de leurs dates en utilisant python





Tout le monde connaît les décombres des photos et des vidéos, qui reposent pendant des années après la copie à partir d'appareils.



Cela est particulièrement vrai pour l'iphone, l'ipad, qui, lorsqu'ils sont copiés directement (sans itunes), créent des

dépôts de contenu multimédia. Comment puis-je tout régler au fil des années et des mois?



Oui, il y a une synchronisation, oui, vous pouvez tout trier en même temps. Mais ...



Quelqu'un préfère ne rien toucher, puisque l'unité de la décharge est observée, quelqu'un fait des tentatives timides pour décomposer tout ce qui s'est accumulé au moins au fil des ans.



Sans aucun doute, grâce à l'explorateur, en utilisant la vue tabulaire, il ne sera pas difficile de disperser manuellement tout cela, mais vous commencez à regarder de vieilles photos et le processus est retardé.



Par conséquent, nous allons écrire un programme simple qui décomposera les fichiers dans un dossier par années avec des mois:











Le programme déterminera lui-même la date, "en regardant" la date de la modification du fichier:







Pourquoi utilisons-nous la date de modification, et non la date de création du fichier?

En règle générale, elle indique plus correctement la date du dossier que son homonyme.



Importation des modules au démarrage:

import os,time
import datetime
import shutil


Nous suggérons à l'utilisateur de copier le chemin (windows) dans le dossier contenant les fichiers:



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


Introduisons la fonction de création de dossiers avec des mois de 01 à 12 (pardonnez-moi le manque de lignes f):



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


La fonction suivante traitera la date obtenue à partir du fichier photo / vidéo:



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


Maintenant, en parcourant le dossier, le programme collectera toutes les extensions de fichier et en même temps,

déterminera l'année du fichier. Pour chaque année, son propre dossier sera créé, et dans celui-ci, des

dossiers avec des mois seront créés:



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)


* Ainsi, vous pouvez disperser des fichiers avec des extensions complètement différentes (toutes) dans des dossiers, pas seulement jpeg, mov, mkv.



Parcourons à nouveau le dossier avec le vidage de photos, en transférant maintenant les photos vers les dossiers correspondants nouvellement créés:



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


Puisque le programme se termine par une erreur, sans trouver le dernier fichier de la boucle, ce qui n'affecte pas sa bonne exécution, une béquille de try, sauf est utilisée, ce qui émousse la vigilance des personnes impressionnables qui reçoivent des rougeurs dans la console.



PS: Le message ne prétend pas être scientifique, mais, peut-être, il aidera quelqu'un à vaincre les décharges photo / vidéo. Téléchargez le



programme .



All Articles