我如何创建一个日期修改的排序列表,其中包含/ var / log中以yum.log开头的所有文件的Python
ls -la /var/log/yum.log* [17-01-04 11:36:41]
-rw-------. 1 root root 0 Jan 1 03:45 /var/log/yum.log
-rw-------. 1 root root 16062 Jan 13 2016 /var/log/yum.log-20160113
-rw-------. 1 root root 36020 Dec 22 16:28 /var/log/yum.log-20170101
此代码创建列表,但按名称排序。
logdir = '/var/log'
yum_logs = sorted([f for f in os.listdir(logdir) if f.startswith('yum.log')])
如何按修改日期对此列表进行排序,以便最新的yum日志文件出现?
答案 0 :(得分:2)
您可以使用os.stat获得修改时间:
logdir = '/var/log'
files = [f for f in os.listdir(logdir) if f.startswith('yum.log')]
files.sort(key=lambda x: os.stat(os.path.join(logdir, x)).st_mtime)
答案 1 :(得分:1)
您可以使用os.path.getmtime()
:
logdir = '/var/log'
yum_logs = [f for f in os.listdir(logdir) if f.startswith('yum.log')]
sorted(yum_logs, key=lambda f: os.path.getmtime(os.path.join(logdir, f)))
您可以将reverse=True
传递给sorted
以撤销订单:
sorted(yum_logs, key=lambda f: os.path.getmtime(os.path.join(logdir, f)), reverse=True)