python - 在python中按天对时间戳字符串进行分组

标签 python python-3.x string timestamp

我有许多文件,按日期顺序排列,格式为 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 个列表,每个列表都包含每个列表的相关文件日。

最佳答案

使用字典怎么样?以下是我的做法的高级概述。

  1. 迭代所有文件名
  2. 对于每个文件名,提取日期属性(我只是使用字符串拆分,假设您的文件名结构一致,这应该可以工作)
  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/

相关文章:

python - 如何让你的机器人通过聊天说话?

python - PyDev 无法识别 Celery 任务装饰器

python - 计数行号使用 python

python - 如何更改或覆盖 Python 3.3 卡带中的 openshift.conf

python - all()函数的正确使用

c# - 连接或添加字符串但不使用 string.Format 时出现内存碎片?

java - 字节数组到字符串给出 "???"

python - 如何返回垂直对齐的文本(python3)

python - 如何使用 Jinja2 模板添加嵌套 groupby

python - IO错误 : [Errno url error] invalid proxy for http: 'xxx.xxx.xxx.xxx'