我有几千个文件,文件名中有datetime。
遗憾的是,日期时间块之间的偏差并不总是相同的。
示例:
我用正则表达式在字符串中找到了datetime部分
import re
strings = ['Data_trul-100A1-Berlin_2019-01-31_150430.dat',
'Data_tral-2000B2-Frankf-2018_02_27-190200.dat',
'Data_bash-300003_Hambrg_2017-04-12_210500.dat']
for part_string in strings:
match = re.search('\d{4}[-_]\d{2}[-_]\d{2}[-_]\d{6}', part_string)
print(match.group())
但是,现在我不得不将组转换为datetime
from datetime import datetime
date = datetime.strptime(match.group(), "%Y-%m-%d_%H%M%S")
因为我需要指定破折号或下划线。你知道吗
我想出了下面的解决方案来取代它,但这感觉像作弊。你知道吗
for part_string in strings:
part_string = part_string.replace('-',"_")
match = re.search('\d{4}_\d{2}_\d{2}_\d{6}', part_string)
date = datetime.strptime(match.group(), "%Y_%m_%d_%H%M%S")
print(date)
有没有更优雅的方式?使用regex找到除法器并将其传递给strtime?你知道吗
您可以更改正则表达式以找到4个独立的元素
然后将它们组合成一个标准的字符串格式
当然,此时您可以将hhmms部分时间拆分为它们自己的元素,并直接构建datetime对象
相关问题 更多 >
编程相关推荐