Доброе время!
Есть строки с числами 2095,51 209,56 1885,95. Чтобы преобразовать их во float необходимо запятую изменить на точку. Подскажите пожалуйста оптимальное решение. подозреваю, что через format, но так и не понял.
>>> "2095,51".replace(",", ".") '2095.51'
a='Абонентская плата L 500 + 1838,71 0,05 1654,84'.split() #будут даны строки, которые нужно отфильтровать по числу в середине, в этом случае '0,05'
b=a[::-1] #начало у строк разное, единственное, что объединяет, это то, что нужное число в предпоследней подстроке.
c=str(b[1]).replace(',','.')#чтобы применить replace для дальнейшего преобразования во float нужно из list перевести в str.
if float(c)!=0:
print('Число')
else:
print('Ноль')
[code python]Your code here....[/code]
>>> a='Абонентская плата L 500 + 1838,71 0,05 1654,84' .replace(',','.').split() >>> print(a) ['Абонентская', 'плата', 'L', '500', '+', '1838.71', '0.05', '1654.84']
block_begin = "Абонентский номер" block_end = "Итого" flag = 0 #1 - блок открыт,2 - блок закрыт f_name = 'tmp.txt' tmp = [] with open(f_name) as f: for line in f: if line.startswith(block_begin): flag = 1 if line.startswith(block_end): flag = 2 if flag == 1: tmp.append(line) if flag == 2: tmp.append(line) print(tmp) tmp = [] flag = 0
with open('test.txt') as fil: for i,x in enumerate(' '.join([i.strip() if i !='\n' else '*' for i in fil.readlines()]).split('*')): print('блок {}\n'.format(i),x) блок 0 Абонентский номер +7XXXXXXXX31 Безлимитный внутри сети лайт() 81 Входящие вызовы (Остальные)( мин) 1,15 0 Входящие вызовы (С мобильного)( мин) 84,10 0 Опция Безлимитный интернет( Мб) 167,4 Итого 307,97 блок 1 Абонентский номер +7XXXXXXXX45 Безлимитный внутри сети лайт() 81 Входящие вызовы (Остальные)( мин) 1,15 0 Входящие вызовы (С мобильного)( мин) 84,10 0 Опция Безлимитный интернет( Мб) 167,4 Итого 307,97 блок 2 Абонентский номер +7XXXXXXXX55 Безлимитный внутри сети лайт() 81 Входящие вызовы (Остальные)( мин) 1,15 0 Входящие вызовы (С мобильного)( мин) 84,10 0 Опция Безлимитный интернет( Мб) 167,4 Итого 307,97
megafox
Есть строки с числами 2095,51
megafoxЗадачи такого типа возникают когда вы не с того конца пытаетесь автоматизировать процесс.
Задача: есть файл, разделенный на блоки пустой строкой,