我想找到一种从不同文件路径中提取格式%H-%M-%S的时间的一般方法,如下所示:
u'C:/Users/pivo/work/Data/Pink_Exp_2015_12031329\\2015-12-03_15-58-29_TrData.txt'
u'C:/Users/pivo/work/Data/Black_try\\2015-12-03_14-41-00_TrData.txt'
我可以使用split并指向时间,因为这两种情况如下,但我正在寻找一般解决方案
date_str = path1.split('_')[2]
date_str = path2.split('_')[4]
最好的方法是什么?谢谢
答案 0 :(得分:2)
import re
reg = r'\d+\-\d+\-\d+'
data='C:/Users/pivo/work/Data/Black_try\\2015-12-03_14-41-00_TrData.txt'
a=re.findall(reg, data)
print(a[1])
你需要尝试做一些正则表达式模式来找到你真正想要的东西。
这是一个python正则表达式教程: http://www.tutorialspoint.com/python/python_reg_expressions.htm
答案 1 :(得分:0)
如果您需要使用日期,以下方法可能也会有所帮助:
from datetime import datetime
import os
filepaths = [ur'C:/Users/pivo/work/Data/Pink_Exp_2015_12031329\2015-12-03_15-58-29_TrData.txt',
ur'C:/Users/pivo/work/Data/Black_try\2015-12-03_14-41-00_TrData.txt', 'not suitable.txt']
for full_path in filepaths:
path, name = os.path.split(full_path)
try:
print datetime.strptime(name[:19], '%Y-%m-%d_%H-%M-%S')
except ValueError, e:
pass
这将显示以下输出日期:
2015-12-03 15:58:29
2015-12-03 14:41:00