У меня есть список строк в Python 2.7, как это:
lst = [u'Name1_Cap23_o2_A_20160830_20170831_test.tif',
u'Name0_Cap44_o6_B_20150907_20170707.tif',
u'Name99_Vlog_o88_A_20180101_20180305_exten.tif']
Что я хотел бы сделать, это извлечь только строку перед двумя датами, чтобы я получил список, подобный этому:
lst = [u'Name1_Cap23_o2_A_20160830_20170831',
u'Name0_Cap44_o6_B_20150907_20170707',
u'Name99_Vlog_o88_A_20180101_20180305']
Что я знаю, так это как извлечь две даты с помощью re package, но как я могу получить список в примере выше, используя datetime и re package. У кого-нибудь есть идеи, как я могу получить оставшуюся часть строки?
from datetime import datetime
import re
from datetime import datetime
pattern = re.compile(r'(\d{8})_(\d{8})')
dates = pattern.search(lst[0])
startdate = datetime.strptime(dates.group(1), '%Y%m%d')
enddate = datetime.strptime(dates.group(2), '%Y%m%d')
datestring = format(startdate, '%Y%m%d') + "_" + format(startdate, '%Y%m%d')