【问题标题】:Sorting data files in Python在 Python 中对数据文件进行排序
【发布时间】:2017-09-24 19:51:29
【问题描述】:

我有很多文件,它们按创建年份的日期编号。例如:

  • rate_2017_04.txt
  • rate_2017_09.txt
  • rate_2017_45.txt
  • rate_2017_99.txt
  • rate_2017_146.txt
  • rate_2017_267.txt

最后一个数字表示一年中的哪一天。我正在尝试使用

对这些文件进行排序
rate_file_list = sorted(glob.glob('rate_201*.txt'))

但是通过这样做,我得到了类似的东西:

  • rate_2017_04.txt
  • rate_2017_09.txt
  • rate_2017_146.txt
  • rate_2017_267.txt
  • rate_2017_45.txt
  • rate_2017_99.txt

有没有办法设置sorted()来解决这个问题?

【问题讨论】:

  • 这可以通过 linux 命令行中的一行来完成。快速简单

标签: python sorting date


【解决方案1】:

sorted() 接受 key 参数,这是一个用于从可迭代的每个元素中提取比较键的函数。您可以为此使用datetime.strptime()

from datetime import datetime

def keyfunc(value):
    return datetime.strptime(value, "rate_%Y_%j.txt")  

rate_file_list = sorted(glob.glob('rate_201*.txt'), key=keyfunc)

现在这些值将作为日期进行比较,这是您想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 2015-06-14
    • 2020-11-21
    • 2018-05-08
    • 2021-04-30
    • 2017-10-22
    • 2016-01-15
    • 2017-06-23
    相关资源
    最近更新 更多