Считать определенный элемент из названия файла

мне нужно перебрать файлы, и из названия забрать определенные элементы и организовать их в массив. Вот небольшой кусочек для работы

import os
import numpy as np
    
SIG = []
SIG_str = []
MOD = []
i = 0
LOL = 0
array = []

path = f'C:\\Users\\Admin\\Desktop\\NN\\My_dataset\\8APSK' # получаем директорию i-ой папки
os.chdir(path) # перемещаемся в директорию i-ой папки
path_files = os.listdir(path) # получаем список файлов i-ой папки

for g in range(4): # цикле от первого до последнего файла i-ой папки
     
    with open (f'C:\\Users\\Admin\\Desktop\\NN\\My_dataset\\8APSK\\{path_files[g]}') as f:
        
        LOL = path_files[g]
        
        col1 = []
        col2 = []
        col3 = []

    
        for line in f:  
            first, second, third = line.split()
            col1.append(first)
            col2.append(second)
            col3.append(third)
            
            SIG_str = ([float(el.replace(",", ".")) for el in col2])
        
        SIG.append(list(map(float, SIG_str)))
        
    MOD.append(i)
    
    i += 1             
    print (i)

Основная задача в том, чтобы из названия я мог извлечь значение dB:

print (LOL)
8APSK_-10dB_101.lvm

Т.е. нужно чтобы он вырезал -10dB, и потом я сделал новый массив с этими значениями. Подскажите пожалуйста как это можно сделать, и какими функциями надо воспользоваться.


Ответы (1 шт):

Автор решения: CrazyElf

Используйте регулярные выражения:

import re

regex = re.compile(r"_(\-?\d+dB)_")
text = "8APSK_-10dB_101.lvm"
regex.findall(text)

Вывод:

['-10dB']
→ Ссылка