您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 如何使用文件修改日期制作按时间顺序排列的文件列表

5b51 2022/1/14 8:21:20 python 字数 4611 阅读 567 来源 www.jb51.cc/python

我想在一个扩展名为.bas的目录中创建这些文件的列表,并在2011年6月1日之后进行了修改.另外,我想知道如何选择让列表中的文件显示日期和文件上次修改的时间,例如'filename.bas 2011-06-04_AM.00.30'我是一个Python新手.我能够列出具有.bas扩展名的文件,按日期排序,使用以下代码:from stat import S_IS

概述

我想在一个扩展名为.bas的目录中创建这些文件的列表,并在2011年6月1日之后进行了修改.另外,我想知道如何选择让列表中的文件显示日期和文件上次修改的时间,例如’filename.bas 2011-06-04_AM.00.30′

我是一个Python新手.我能够列出具有.bas扩展名的文件,按日期排序,使用以下代码

from stat import S_ISREG,ST_CTIME,ST_MODE
import os,sys,time,glob
search_dir = r"e:\test"
files = filter(os.path.isfile,glob.glob(search_dir + "\\*.bas"))
files.sort(key=lambda x: os.path.getmtime(x))

但我无法弄清楚如何将“日期”附加到列表中的文件名.

任何建议将非常感谢.

from stat import S_ISREG,glob.glob(search_dir + "\\*.bas"))
file_date_tuple_list = []
for x in files:
    d = os.path.getmtime(x)
    #tuple with file and date,add it in a list
    file_date_tuple = (x,d)
    file_date_tuple_list.append(file_date_tuple)
#sort the tuple list by the second element which is the date
file_date_tuple_list.sort(key=lambda x: x[1])

或者,您可以使用列表推导来使代码更紧凑和干净……

file_date_tuple_list = [(x,os.path.getmtime(x)) for x in files]
file_date_tuple_list.sort(key=lambda x: x[1])

这两行将替换第一个示例中的所有for循环.

现在,如果列表中您想要的是带有文件名和日期格式的字符串,那么…添加此导入…

from datetime import date

以及具有此列表理解的另一行,它采用修改时间戳并将其格式化为字符串.

file_date_string_list = ["%s %s"%(x[0],date.fromtimestamp(x[1])) \
                                             for x in file_date_tuple_list]

要反转排序顺序,请在排序执行中使用reverse参数:

file_date_tuple_list.sort(key=lambda x: x[1],reverse=True)

用于将日期限制为特定日期时间

from datetime import datetime
limit = datetime(2011,01,05,17,0) #5pm,Jun 5 2011 
file_date_string_list = ["%s %s"%(x[0],date.fromtimestamp(x[1])) \
                                       for x in file_date_tuple_list \
                                       if datetime.fromtimestamp(x[1]) > limit ]

正如您所看到的,您可以在列表推导中添加if条件,这非常酷.

总结

以上是编程之家为你收集整理的python – 如何使用文件修改日期制作按时间顺序排列的文件列表全部内容,希望文章能够帮你解决python – 如何使用文件修改日期制作按时间顺序排列的文件列表所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶