2016-11-16 13 views
-1

私は日付を含む文字列を持っています。 strptime()と日付形式を一致させますが、それに続くエラーをスローします。私はミスをやっているところValueError:時刻データ 'abc-xyz-listener.log.2016-10-18-180001'は '%Y-%m-%d'の形式と一致しません

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    datetime.datetime.strptime("abc-xyz-listener.log.2016-10-18-180001", "%Y-%m-%d") 
    File "C:\Python27\lib\_strptime.py", line 325, in _strptime 
    (data_string, format)) 
ValueError: time data 'abc-xyz-listener.log.2016-10-18-180001' does not match format '%Y-%m-%d' 

は、誰かが私を助けることができる:

import datetime 
datetime.datetime.strptime("abc-xyz-listener.log.2016-10-18-180001", "%Y-%m-%d") 

私は次のようになっています。事前に感謝します

答えて

2

エラーメッセージはかなり明確です:"abc-xyz-listener.log.2016-10-18-180001""%Y-%m-%d"の形式ではありません。追加することはそれほど多くありません。あなたが正規表現で余分なものを取り除くことができます

import re 
import datetime 

string = 'abc-xyz-listener.log.2016-10-18-180001' 

date_string = re.search(r'\d{4}-\d{2}-\d{2}', string).group() 

print(date_string) 
# 2016-10-18 

print(datetime.datetime.strptime(date_string , "%Y-%m-%d")) 
# 2016-10-18 00:00:00 

あなたはまた、場合re.searchにはいくつかのtry-exceptを追加することもできますが、入力文字列に有効な日付を見つけることができません。

関連する問題