Считать определенный элемент из названия файла
мне нужно перебрать файлы, и из названия забрать определенные элементы и организовать их в массив. Вот небольшой кусочек для работы
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']