Python - 将儒略日期转换为月份
我有一系列文件名需要处理,这些文件名里包含了年份和儒略日,比如说 A1998237.tif
。
我该如何根据文件名把这些文件按月份(比如一月、二月等等)分组呢?
这是一个准备步骤,之后我会把这些文件读入内存。然后我会计算与每个文件相关的矩阵的平均值,来生成每个月的矩阵。
1 个回答
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,2月是1,以此类推。
这里假设文件名总是以 一个 字母开头,接着是年份和儒略日,然后是文件扩展名。如果这个假设不对,你需要提供更多关于文件名的格式的信息。
下面是你提供的文件名的示例:
>>> 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)
这个文件名会被放到“八月”的分类里,也就是 files_by_month[7]
。