Como decompor fotos e vídeos em pastas com base em suas datas usando python





Todos estão familiarizados com os destroços de fotos e vídeos, que permanecem por anos após serem copiados de dispositivos.



Isso é especialmente verdadeiro para iphone, ipad, que, quando copiados diretamente (sem o itunes), criam

depósitos de conteúdo de mídia. Como você pode organizar tudo por ano e mês?



Sim, há sincronização, sim, você pode classificar tudo de uma vez. Mas ...



Alguém prefere não mexer em nada, visto que a unidade do aterro é observada, alguém faz tímidas tentativas de decompor tudo o que foi acumulado ao longo dos anos.



Sem dúvida, através do maestro, usando a visão tabular, não será difícil espalhar manualmente tudo isso, mas você começa a olhar as fotos antigas, e o processo se atrasa.



Portanto, vamos escrever um programa simples que irá decompor os arquivos em uma pasta em anos com meses:











O próprio programa determinará a data, "olhando" a data da modificação do arquivo:







Por que usamos a data de modificação, não a data de criação do arquivo?

Via de regra, ela indica mais corretamente a data do arquivo do que seu homônimo.



Importando módulos no início:

import os,time
import datetime
import shutil


Sugerimos que o usuário copie o caminho (windows) para a pasta com os arquivos:



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


Vamos apresentar a função de criação de pastas com meses de 01 a 12 (desculpem a falta de f 'linhas):



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


A função a seguir processará a data obtida do arquivo de foto / vídeo:



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


Agora, passando pela pasta, o programa irá recolher todas as extensões dos arquivos e, ao mesmo tempo,

determinar em que ano o arquivo tem. A cada ano será criada sua própria pasta, e nela

serão criadas pastas com 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)


* Assim, você pode espalhar arquivos com extensões completamente diferentes (quaisquer) em pastas, não apenas jpeg, mov, mkv.



Vamos percorrer a pasta com o despejo de fotos novamente, agora transferindo as fotos para as pastas correspondentes recém-criadas:



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


Como o programa termina com um erro, sem encontrar o último arquivo do loop, o que não prejudica sua execução correta, utiliza-se uma muleta de tentativa, exceto, que embota a vigilância de pessoas impressionáveis ​​que recebem vermelhidão no console.



PS: A postagem não pretende ser científica, mas, talvez, ajude alguém a derrotar os despejos de fotos / vídeos. Baixe o



programa .



All Articles