2010-03-15 41 views
1

我的文本文件,像閱讀的文本字段在Python中使用正則表達式

FILED AS OF DATE:  20090209 
DATE AS OF CHANGE:  20090209 

我需要使用FILED AS OF DATE:找到位置並讀取日期。我知道如何使用python字符串。但使用正則表達式似乎更酷:)

順便說一句,如何解析日期?

謝謝!

+4

*「但使用正則表達式看起來更酷」* - 哎!如果你擔心你的代碼不夠「酷」,那麼你可能會遇到其他問題;-) – Joey 2010-03-15 10:44:12

+2

我認爲_may_在這裏沒有必要:) – extraneon 2010-03-15 10:47:19

+3

沒有人說:「人們有問題,他們決定使用常規表達式,現在他們有兩個問題「 – batbrat 2010-03-15 10:52:59

回答

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 
+0

獲取數字。好主意,但我認爲添加一點點評論會使帖子更好! – Khelben 2010-03-15 11:27:11

1

這是你所需要的?

/FILED.*([0-9]{4})([0-9]{2})([0-9]{2})$/ 

搜索FILED然後任何事情然後解析日期分成3組。

相關問題