Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从文件路径提取时间_Python_File_Datetime - Fatal编程技术网

Python:从文件路径提取时间

Python:从文件路径提取时间,python,file,datetime,Python,File,Datetime,我想找到一种通用方法,从不同的文件路径中提取格式为%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 =

我想找到一种通用方法,从不同的文件路径中提取格式为%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]
最好的方法是什么?多谢各位

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正则表达式教程:

如果您需要处理日期,以下方法也可能有用:

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

你尝过吗approach@saikumarm看看那本似乎有用的书,谢谢。我会看看正则表达式库教程。