Directory Listing based on time [duplicate]

2020-02-08 17:09发布

How to list the files in a directory based on timestamp?

 os.listdir() 

lists in arbitrary order.

Is there a build-in function to list based on timestamp? or by any order?

2条回答
做个烂人
2楼-- · 2020-02-08 18:02

My immediate solution is,

 >>> import commands
 >>> a = commands.getstatusoutput("ls -ltr | awk '{print $9}'")
 >>> list  =a[1].split('\n')

As per the duplicate post pointed by bluish, this is a bad solution; why is it bad?

查看更多
够拽才男人
3楼-- · 2020-02-08 18:16

You could call stat() on each of the files and sort by one of the timestamps, perhaps by using a key function that returns a file's timestamp.

import os

def sorted_ls(path):
    mtime = lambda f: os.stat(os.path.join(path, f)).st_mtime
    return list(sorted(os.listdir(path), key=mtime))

print(sorted_ls('documents'))
查看更多
登录 后发表回答