Python - 将儒略日期转换为月份

-3 投票
1 回答
1086 浏览
提问于 2025-04-18 00:21

我有一系列文件名需要处理,这些文件名里包含了年份和儒略日,比如说 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]

撰写回答