Форум сайта python.su
0
В читаемом текстовом файле содержатся строки содержащие содержащие только одно или несколько чисел с плавающей точкой и пробельные стмволы и строки содержащие различные буквы. Необходимо различить их. isdigit() как я понимаю тут не подходит.
Отредактировано alien308 (Ноя. 29, 2014 14:14:53)
Офлайн
35
c:/blah.txt:
123.123 34.5
asd,df fgfj 123.5
123,4
only_float = [] only_char = [] float_and_char = [] def isfloat(value): try: float(value) return True except ValueError: return False with open('c:/blah.txt') as f: for line in f.readlines(): if all([isfloat(s) for s in line.split(' ')]): only_float.append(line) elif all([not isfloat(s) for s in line.split(' ')]): only_char.append(line) else: float_and_char.append(line)
>>> only_float
['123.123 34.5\n']
>>> only_char
['123,4']
>>> float_and_char
['asd,df fgfj 123.5\n']
Офлайн
0
Спасибо. Сделал по аналогии так:
def isfloats_or_space_or_empty(s): try: if len(s.strip()) > 0: map(float, s.split()) return True else: return True except: return False
Офлайн