-3

我有一系列需要处理的文件名,它们的文件名中有年份和儒略日,例如A1998237.tif.

如何根据文件名称按月份(例如 Jan、Feb ...)对这些文件进行分组?

这是一个前置程序,之后我会将这些文件读入内存。然后我将取与每个文件关联的矩阵的平均值来生成每月矩阵。

4

1 回答 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 的索引来存储每个月的列表;一月是 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)

这将被归档在“八月”桶中,files_by_month[7].

于 2014-03-28T17:30:30.343 回答