2012-09-05 2 views
1

mbox 형식 이메일 스풀을 구문 분석하려고합니다.Python time.strptime()이 잘못된 결과를 제공합니까?

나는이 수행하는 코드 : 원함 것을 제외하고, 확인을 작동하는 것 같다 보통

if string.find(line, 'Date: ') == 0:      
    try: 
     when = time.mktime(time.strptime(line[6:30], "%a, %d %b %Y %H:%M:%S")) 

을 때 라인 = '날짜 : 2004년 (토) 4월 17일 22시 29분 37초 -0400 \ n'을 그 잘못된 결과를주는 것으로 보입니다 (22:29:37 대신 22:29:03).

(Pdb) p line 
'Date: Sat, 17 Apr 2004 22:29:37 -0400\n' 
(Pdb) p time.strptime(line[6:30], "%a, %d %b %Y %H:%M:%S") 
time.struct_time(tm_year=2004, tm_mon=4, tm_mday=17, tm_hour=22, tm_min=29, tm_sec=3, tm_wday=5, tm_yday=108, tm_isdst=-1) 
(Pdb) 

결과 34 초 꺼져있는 것 같다

여기 내 PDB 추적합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

7

줄을 너무 짧게 자르고 있습니다. 두 번째 값은 포함되지 독점입니다 :

>>> line[6:30] 
'Sat, 17 Apr 2004 22:29:3' 
>>> line[6:31] 
'Sat, 17 Apr 2004 22:29:37' 
>>> time.strptime(line[6:31], "%a, %d %b %Y %H:%M:%S") 
time.struct_time(tm_year=2004, tm_mon=4, tm_mday=17, tm_hour=22, tm_min=29, tm_sec=37, tm_wday=5, tm_yday=108, tm_isdst=-1) 
+0

감사합니다! 나는 머리카락을 꺼내고 있었다. –

관련 문제