У меня есть список files
строк в следующем формате:Extract ИНТ между двумя строками в Python
files = ['/misc/lmbraid17/bensch/u-net-3d/2dcellnet/2dcellnet_v6w4l1/2dcellnet_v6w4l1_snapshot_iter_418000.caffemodel.h5',
'/misc/lmbraid17/bensch/u-net-3d/2dcellnet/2dcellnet_v6w4l1/2dcellnet_v6w4l1_snapshot_iter_502000.caffemodel.h5', ...]
Я хочу, чтобы извлечь int
между iter_
и .caffemodel
и возвращает список тех Интс.
После некоторых исследований я придумал это решение, которое делает трюк, но мне было интересно, есть ли более элегантный/pythonic способ сделать это, возможно, используя понимание списка?
li = []
for f in files:
tmp = re.search('iter_[\d]+.caffemodel', f).group()
li.append(int(re.search(r'\d+', tmp).group()))
Вы должны использовать группу захвата. 'r'iter _ (\ d +) \. caffemodel'', а затем получить доступ к значению через' .группу (1) '. –