ADD: new example file
This commit is contained in:
parent
7bb2a6c2a5
commit
3f6a9cc576
|
@ -0,0 +1,104 @@
|
|||
import sys, os, datetime
|
||||
from stat import *
|
||||
import pyexiv2
|
||||
def getsubs(dir):
|
||||
dirs = []
|
||||
files = []
|
||||
for dirname, dirnames, filenames in os.walk(dir):
|
||||
dirs.append(dirname)
|
||||
for subdirname in dirnames:
|
||||
dirs.append(os.path.join(dirname, subdirname))
|
||||
for filename in filenames:
|
||||
files.append(os.path.join(dirname, filename))
|
||||
return dirs, files
|
||||
|
||||
cur_dir = os.path.abspath(os.curdir)
|
||||
main_dir = cur_dir
|
||||
|
||||
dirs_all, files_all = getsubs(cur_dir)
|
||||
#files = os.listdir(cur_dir)
|
||||
files = files_all
|
||||
for f in files:
|
||||
FLAG_NOT_RENAME = 1
|
||||
|
||||
sPathFile=os.path.join(cur_dir, f)
|
||||
nFileName = os.path.basename(sPathFile)
|
||||
if nFileName == 'sort.py':
|
||||
print "1", FLAG_NOT_RENAME, f
|
||||
FLAG_NOT_RENAME = 0
|
||||
metadata = pyexiv2.ImageMetadata(f)
|
||||
try:
|
||||
metadata.read()
|
||||
try:
|
||||
if len(metadata.exif_keys)==0:
|
||||
#print datetime.datetime.fromtimestamp(metadata._atime)
|
||||
tag = datetime.datetime.fromtimestamp(metadata._mtime)
|
||||
date = str(tag.day)
|
||||
month = str(tag.month)
|
||||
year = str(tag.year)
|
||||
else:
|
||||
if 'Exif.Image.DateTime' in metadata.exif_keys:
|
||||
tag = metadata['Exif.Image.DateTime']
|
||||
date = tag.raw_value[8:-9]
|
||||
month = tag.raw_value[5:-12]
|
||||
year = tag.raw_value[:4]
|
||||
elif 'Exif.Photo.DateTimeDigitized' in metadata.exif_keys:
|
||||
tag = metadata['Exif.Photo.DateTimeDigitized']
|
||||
date = tag.raw_value[8:-9]
|
||||
month = tag.raw_value[5:-12]
|
||||
year = tag.raw_value[:4]
|
||||
else:
|
||||
tag = datetime.datetime.fromtimestamp(metadata._mtime)
|
||||
date = str(tag.day)
|
||||
month = str(tag.month)
|
||||
year = str(tag.year)
|
||||
if year == '0000':
|
||||
tag = datetime.datetime.fromtimestamp(metadata._mtime)
|
||||
date = str(tag.day)
|
||||
month = str(tag.month)
|
||||
year = str(tag.year)
|
||||
except KeyError:
|
||||
FLAG_NOT_RENAME = 0
|
||||
print "2", FLAG_NOT_RENAME, f, metadata
|
||||
except IOError:
|
||||
#tag = time.ctime(os.path.getmtime(f))
|
||||
tag = datetime.datetime.fromtimestamp(os.stat(f).st_mtime)
|
||||
date = str(tag.day)
|
||||
month = str(tag.month)
|
||||
year = str(tag.year)
|
||||
print "3", FLAG_NOT_RENAME, f
|
||||
if FLAG_NOT_RENAME == 1:
|
||||
#dtFile=datetime.date.fromtimestamp(os.stat(sPathFile)[ST_CTIME])
|
||||
#print "Path: ", sPathFile, dtFile.strftime("%d.%m.%Y")
|
||||
print "ok", FLAG_NOT_RENAME, f
|
||||
|
||||
|
||||
try:
|
||||
os.makedirs(main_dir+'/'+year)
|
||||
except OSError:
|
||||
pass
|
||||
try:
|
||||
os.makedirs(main_dir+'/'+year+'/'+month)
|
||||
except OSError:
|
||||
pass
|
||||
try:
|
||||
os.makedirs(main_dir+'/'+year+'/'+month + '/' + date)
|
||||
except OSError:
|
||||
pass
|
||||
oldDst = sPathFile
|
||||
newDst = (main_dir+'/'+year+'/'+month + '/' + date + '/' + nFileName)
|
||||
|
||||
def recurs_name(file_name):
|
||||
try:
|
||||
newDst = (main_dir+'/'+year+'/'+month + '/' + date + '/' +'_'+ file_name)
|
||||
os.rename( oldDst, newDst)
|
||||
except OSError:
|
||||
recurs_name('_'+ file_name)
|
||||
|
||||
try:
|
||||
os.rename( oldDst, newDst )
|
||||
except OSError:
|
||||
try:
|
||||
recurs_name(nFileName)
|
||||
except OSError:
|
||||
pass
|
Loading…
Reference in New Issue