我有文本文件,比如
FILED AS OF DATE: 20090209
DATE AS OF CHANGE: 20090209
我需要使用FILED AS OF DATE:
找到该位置并阅读日期。我知道如何使用python字符串。但使用正则表达式看起来更酷:)
顺便问一下,如何解析日期?
谢谢!
答案 0 :(得分:3)
#!/usr/bin/env python
import datetime, fileinput, re
for line in fileinput.input():
if 'FILED AS OF DATE' in line:
line = line.rstrip()
dt = datetime.datetime.strptime(line, 'FILED AS OF DATE: %Y%m%d')
# or with regex
date_str, = re.findall(r'\d+', line)
dt = datetime.datetime.strptime(date_str, '%Y%m%d')
print dt.date()
示例:
$ ./finddate.py input.txt
输出:
2009-02-09
答案 1 :(得分:1)
这是你需要的吗?
/FILED.*([0-9]{4})([0-9]{2})([0-9]{2})$/
搜索FILED然后搜索任何内容然后解析分为3组的日期。
答案 2 :(得分:1)
您实际上不需要使用RE
。
关于解析日期,您可以使用datetime.strptime(date_string, format)。然后,如果需要,您可以将其从datetime.datetime
转换为datetime.date
。
或者使用python-dateutil parse() function,这在日期(时间)值的格式不固定时非常方便。