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 .