Cómo descomponer fotos y videos en carpetas según sus fechas usando Python





Todo el mundo está familiarizado con los escombros de fotos y videos, que descansan durante años después de copiarlos desde dispositivos.



Esto es especialmente cierto para iphone, ipad, que, cuando se copian directamente (sin iTunes), crean

depósitos de contenido multimedia. ¿Cómo puedes ordenarlo todo por año y mes?



Sí, hay sincronización, sí, puedes ordenar todo a la vez. Pero ...



Alguien prefiere no tocar nada, desde que se observa la unidad del vertedero, alguien hace tímidos intentos de descomponer todo lo acumulado al menos a lo largo de los años.



Sin duda, a través del conductor, usando la vista tabular, no será difícil dispersar manualmente todo esto, pero empiezas a mirar fotos antiguas y el proceso se retrasa.



Por lo tanto, escribiremos un programa simple que descompondrá los archivos en una carpeta por años con meses en ellos:











El programa mismo determinará la fecha, "mirando" la fecha de modificación del archivo:







¿Por qué usamos la fecha de modificación y no la fecha de creación del archivo?

Como regla general, indica más correctamente la fecha del archivo que su tocayo.



Importando módulos al inicio:

import os,time
import datetime
import shutil


Sugerimos al usuario que copie la ruta (Windows) a la carpeta con los archivos:



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


Introducimos la función de crear carpetas con meses del 01 al 12 (perdóname por la falta de líneas 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 siguiente función procesará la fecha obtenida del archivo de foto / video:



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


Ahora, revisando la carpeta, el programa recopilará todas las extensiones de archivo y, al mismo tiempo,

determinará qué año tiene el archivo. Para cada año se creará su propia carpeta, y en ella

se crearán carpetas con meses:



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)


* Por lo tanto, puede dispersar archivos con extensiones completamente diferentes (cualquiera) en carpetas, no solo jpeg, mov, mkv.



Repasemos la carpeta con el volcado de fotos nuevamente, ahora transfiriendo las fotos a las carpetas correspondientes recién creadas:



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


Dado que el programa termina con un error, sin encontrar el último archivo del bucle, lo que no afecta su correcta ejecución, se utiliza una muleta de try, salvo, que embota la vigilancia de personas impresionables que reciben enrojecimiento en la consola.



PD: La publicación no pretende ser científica, pero, quizás, ayudará a alguien a vencer los volcados de fotos / videos. Descarga el



programa .



All Articles