diff --git a/Qalbum.py b/Qalbum.py index 3fbf643..4780f32 100755 --- a/Qalbum.py +++ b/Qalbum.py @@ -100,9 +100,9 @@ def getimagelist(path,options=False): if options.timesort: imgs.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) else: - imgs.sort(reverse=options.reverse) + imgs.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x)) else: - imgs.sort() + imgs.sort(key=lambda x: natural_sort_key(x)) return imgs def getnonconvertiblelist(path,options=False): @@ -116,9 +116,9 @@ def getnonconvertiblelist(path,options=False): if options.timesort: files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) else: - files.sort(reverse=options.reverse) + files.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x)) else: - files.sort() + files.sort(key=lambda x: natural_sort_key(x)) return files def getfiletimes(path,list): @@ -147,7 +147,7 @@ def getnonimagelist(path,options): if options.timesort: files.sort(key=lambda f: os.path.getmtime(os.path.join(path, f)),reverse=options.reverse) else: - files.sort(reverse=options.reverse) + files.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x)) return files def getpathlist(path,options=False): @@ -161,9 +161,9 @@ def getpathlist(path,options=False): if options.timesort: paths.sort(key=lambda f: os.path.getmtime(f),reverse=options.reverse) else: - paths.sort(reverse=options.reverse) + paths.sort(reverse=options.reverse,key=lambda x: natural_sort_key(x)) else: - paths.sort() + paths.sort(key=lambda x: natural_sort_key(x)) return paths def pathscript(path,list): @@ -404,6 +404,11 @@ def sizestring(size): return "%3.1f%s" % (size, x) 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): ''' The recursive main function to create the index.html and seek sub folders '''