Python迭代日期列表

Posted

技术标签:

【中文标题】Python迭代日期列表【英文标题】:Python iterating list of dates 【发布时间】:2017-09-04 22:21:21 【问题描述】:

我有 10 年的数据,每天都有一个文件。每个文件的名称如下:

PRISM_ppt_stable_4kmD2_20151226_bil.bil(2015 年 12 月 26 日)

我想浏览每个文件并将日期相同但年份不同的文件放在一个列表中,因此应该有 365 个列表,每个列表包含 10 个项目。如果有人可以帮助我,我很难弄清楚如何让它发挥作用。

谢谢

【问题讨论】:

取文件名(减去 bil 后缀)并在_ 上拆分,然后假设所有文件名的格式一致,取第 5 项并使用 datetime 模块将其转换为日期。在解析文件名时,将它们添加到包含解析的日期时间对象和文件名的元素列表中,然后使用 itertools.groupby 函数和适当的键函数来创建组。由于您没有对您的任务进行任何尝试,我怀疑您是否会让任何人为您编写代码,但如果您进行了任何尝试,发布它们将对您的事业有所帮助。 请考虑接受答案 ????如果它确实对你有帮助,当然 【参考方案1】:

使用 reg exps 捕获日期,然后使用字符串的[] 运算符对其进行处理。对于您的示例文件名,可以通过简单的 [0-9]8 正则表达式捕获日期(这意味着“数字字符正好 8 次)。 给你的示例代码:

import re
match = re.search(r'[0-9]8', fileName)
date = match.group()
year = date[:4]

【讨论】:

以上是关于Python迭代日期列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在不强制转换为数字的情况下迭代日期列表?

Python之迭代器和列表解析

Python3 迭代器与生成器

在R中创建具有特定迭代的列表

Python:如何在迭代列表时从列表中删除元素而不跳过未来的迭代

Python在迭代器中删除列表元素