【问题标题】:Sorting files by date按日期排序文件
【发布时间】:2011-07-20 09:02:32
【问题描述】:

我在网上找到了这个目录检查代码并稍微修改了一下,所以它会打印出添加的文件。有一个浮标不时向我发送读数,但有时连接丢失,而不是一个文件,它发送多个文件。我需要程序按创建日期为我排序。有没有办法做到这一点?

import os, time
path_to_watch = 'c://Users//seplema//Documents//arvuti'
before = dict([(f, None) for f in os.listdir (path_to_watch)])
while 1:
    after = dict([(f, None) for f in os.listdir (path_to_watch)])
    added = [f for f in after if not f in before]
    if before == after:
        1==1
    else:
        if len(added)==1:
            print added[0]
        else:
            for i in range (0,len(added)):
                print added[i]
    time.sleep(10)
    before = after

【问题讨论】:

标签: python list sorting


【解决方案1】:
added.sort(key=lambda x: os.stat(os.path.join(path_to_watch, x)).st_mtime)

将按照文件的最后修改时间对added列表进行排序

在 Windows 上使用 st_ctime 代替 st_mtime 作为创建时间(这并不意味着在其他平台上)。

【讨论】:

  • os.path.join 是跨平台的——您不必知道正确的分隔符是什么。
  • 或者干脆added.sort( key=os.path.getmtime )
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多