Salve este texto em um arquivo ( sort.py ) e execute-o:
./sort.py src-dir/ dst-dir/
Faz um loop pelo diretório de origem, obtém o mtime de todos os arquivos e pastas e os move para o diretório de destino. Nota: Não é recursivo! Use a seu próprio risco!
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import os
import sys
import shutil
from datetime import date
# Check arguments
if len(sys.argv) > 2:
src = sys.argv[1]
dst = sys.argv[2]
else:
print "Arguments: ./sort.py [src] [dst]"
sys.exit(1)
# Check paths
if not os.access(src, os.R_OK):
print "Source path not found"
sys.exit(2)
if not os.access(dst, os.W_OK):
print "Destination path not found"
sys.exit(3)
# Start sorting from root
for f in os.listdir(src):
fpath = os.path.join(src, f)
mtime = os.stat(fpath).st_mtime
year = str(date.fromtimestamp(mtime).year)
ypath = os.path.join(dst, year)
if not os.access(ypath, os.W_OK):
os.mkdir(ypath)
print "Moving %s to %s" % (fpath, ypath)
shutil.move(fpath, ypath)