How to get a directory list sorted by date?

Tim Chase python.list at tim.thechases.com
Sun May 15 07:15:11 EDT 2016


On 2016-05-15 11:46, Peter Otten wrote:
> def sorted_dir(folder):
>     def getmtime(name):
>         path = os.path.join(folder, name)
>         return os.path.getmtime(path)
> 
>     return sorted(os.listdir(folder), key=getmtime, reverse=True)
> 
> The same idea will work with pathlib and os.scandir():
> 
> def _getmtime(entry):
>     return entry.stat().st_mtime
> 
> def sd_sorted_dir(folder):
>     return sorted(os.scandir(folder), key=_getmtime, reverse=True)

unless sorted() returns a lazy sorter, you lose most of the advantages
of scandir() being lazy since you have to read the entire directory
list into memory to sort it.

-tkc






More information about the Python-list mailing list