python - 按文件名日期对日期进行排序

标签 python sorting date

我有一个包含 *.txt 文件的文件夹,其中包含特定格式(c 是字符,d 是数字,yyyy-mm-dd-hh-mm-ss 是日期格式)

cccccd_ddd_cc_ccc_c_dd-ddd_yyyy-mm-dd-hh-mm-ss.txt

cccccd_ddd_cc_ccc_c_dd-dddd_yyyy-mm-dd-hh-mm-ss.txt

cccccd_ddd_cc_ccc_c_d_yyyy-mm-dd-hh-mm-ss.txt

当单个数字d等于0时

我想创建一个 python 脚本来获取日期并对特定日期的文件进行排序。

到目前为止我已经完成

import os
list_files=[]
for file in os.listdir():
    if file.endswith(".txt"):
        #print(file)
        list_files.append(file)

但是我对正则表达式有点陌生。谢谢

最佳答案

您可以使用.split()来分割字符串。 看来我们可以从最后一次出现的“_”中拆分出来,去掉“.”后面的部分。获取时间戳。
因此,从 file_name 返回时间戳的方法是:

def get_timestamp(file_name):
    return file_name.split("_")[-1].split('.')[0]

由于所有日期的格式相同,Python 可以使用时间戳字符串本身对这些日期进行排序。
要使用该时间戳获取文件名的排序列表,您可以执行以下操作:

sorted_list = sorted(list_files, key=get_timestamp)

有关 Key 的更多信息函数可以从Python官方文档中学习。

关于python - 按文件名日期对日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343822/

相关文章:

javascript - jquery datepicker 获取日期格式

python - 如何根据其在 Selenium 中以什么结尾的元素来查找元素?

c# - Telerik RadGrid 排序 ASP.NET C#

C数据库设计,可按多字段排序

c++ - 如何删除排序 vector 中的重复项

jquery - 是否有支持达里语和普什图语的 jQuery 日期选择器库的插件或自定义版本

mysql - 使用 MySQL 选择具有设定日期+月份偏移量的行

Python:当旧对象与新对象相等时复制对象

python - 如何使用 Python 每天抓取一次每日新闻?

python - 删除二维数组中的某些对象