attempt better sorting

This commit is contained in:
ville rantanen
2014-03-07 21:58:54 +02:00
parent 4c08c1a5ee
commit 08dafda29b

View File

@@ -100,9 +100,9 @@ def getimagelist(path,options=False):
if options.timesort: if options.timesort:
imgs.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) imgs.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse)
else: else:
imgs.sort(reverse=options.reverse) imgs.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x))
else: else:
imgs.sort() imgs.sort(key=lambda x: natural_sort_key(x))
return imgs return imgs
def getnonconvertiblelist(path,options=False): def getnonconvertiblelist(path,options=False):
@@ -116,9 +116,9 @@ def getnonconvertiblelist(path,options=False):
if options.timesort: if options.timesort:
files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse)
else: else:
files.sort(reverse=options.reverse) files.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x))
else: else:
files.sort() files.sort(key=lambda x: natural_sort_key(x))
return files return files
def getfiletimes(path,list): def getfiletimes(path,list):
@@ -147,7 +147,7 @@ def getnonimagelist(path,options):
if options.timesort: if options.timesort:
files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse)
else: else:
files.sort(reverse=options.reverse) files.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x))
return files return files
def getpathlist(path,options=False): def getpathlist(path,options=False):
@@ -161,9 +161,9 @@ def getpathlist(path,options=False):
if options.timesort: if options.timesort:
paths.sort(key=lambda f: os.path.getmtime(f),reverse=options.reverse) paths.sort(key=lambda f: os.path.getmtime(f),reverse=options.reverse)
else: else:
paths.sort(reverse=options.reverse) paths.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x))
else: else:
paths.sort() paths.sort(key=lambda x: natural_sort_key(x))
return paths return paths
def pathscript(path,list): def pathscript(path,list):
@@ -404,6 +404,11 @@ def sizestring(size):
return "%3.1f%s" % (size, x) return "%3.1f%s" % (size, x)
size /= 1024.0 size /= 1024.0
def natural_sort_key(s, _nsre=re.compile('([0-9]+)')):
''' Natural sort / Claudiu@Stackoverflow '''
return [int(text) if text.isdigit() else text.lower()
for text in re.split(_nsre, s)]
def traverse(path,crumbs,inputs,options): def traverse(path,crumbs,inputs,options):
''' The recursive main function to create the index.html and seek sub folders ''' ''' The recursive main function to create the index.html and seek sub folders '''