Python:从文件路径中提取时间

时间:2016-01-21 09:29:17

标签: python file

我想找到一种从不同文件路径中提取格式%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]

最好的方法是什么?谢谢

2 个答案:

答案 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