我有一系列我需要处理的文件名,他们的文件名中包含年份和朱利安日,例如A1998237.tif
。
如何根据月份(例如1月,2月......)对这些文件进行分组?
这是一个预处理过程,之后我会将这些文件读入内存。然后,我将采用与每个文件相关联的矩阵的平均值来生成月度矩阵。
答案 0 :(得分:1)
解析朱利安日,将每个文件名归档到该月的字典中:
from datetime import datetime
import os.path
# months from 0 to 11
files_by_month = [[] for _ in range(12)]
for filename in filenames:
dt = datetime.strptime(os.path.splitext(filename)[0][1:], '%Y%j')
files_by_month[dt.month - 1].append(filename)
files_by_month
使用基于0的索引来每月存储一个列表; 1月是0等等。
这假设文件名始终以一个字母开头,后面是年份+朱利安年份日,后面是扩展名。如果这些假设不正确,您需要提供有关文件名中有哪种模式的更多信息。
示例文件名的演示:
>>> from datetime import datetime
>>> import os.path
>>> filename = 'A1998237.tif'
>>> datetime.strptime(os.path.splitext(filename)[0][1:], '%Y%j')
datetime.datetime(1998, 8, 25, 0, 0)
将在'august'桶中提交,files_by_month[7]
。