我有许多文件,按日期顺序排列,格式为 YYMMDD_hhmmss.txt
我想仅根据文件的日期来隔离这些文件。
每天有 24 个文件,每小时 1 个文件...我想将每天的所有文件隔离到单独的列表中。
day = 1
list_for_a_day = []
for filename in all_files:
if '%s' % (day) in filename:
list_for_a_day.append(filename)
day += 1
if day > 31:
pass
这显然是错误的处理方式。如果我有 3 天的文件,每天有 24 个文件,那么就是 72 个文件...我想要 3 个列表,每个列表都包含每个列表的相关文件日。
最佳答案
使用字典怎么样?以下是我的做法的高级概述。
- 迭代所有文件名
- 对于每个文件名,提取日期属性(我只是使用字符串拆分,假设您的文件名结构一致,这应该可以工作)
- 将该文件添加到字典中按
day
索引的列表中。
files = {}
for filename in all_files:
day = filename.split('_')[0][-2:]
files.setdefault(day, []).append(filename)
文件
看起来像这样:
{
day1 : [f11, f12, ...],
day2 : [f21, f22, ...],
...
}
请注意,键是字符串,但如果您提前将 day
转换为 int
,它们也可以很容易地是整数。
关于python - 在python中按天对时间戳字符串进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47922675/