Найти - Пользователи
Полная версия: Протестировать строку на вхождение символов недопустимых в числах
Начало » Python для новичков » Протестировать строку на вхождение символов недопустимых в числах
1
alien308
В читаемом текстовом файле содержатся строки содержащие содержащие только одно или несколько чисел с плавающей точкой и пробельные стмволы и строки содержащие различные буквы. Необходимо различить их. isdigit() как я понимаю тут не подходит.
botinag
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']
alien308
Спасибо. Сделал по аналогии так:
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB