python: обнаружение отрицательного числа в строке - PullRequest
3 голосов
/ 26 мая 2011

Итак, у меня есть несколько текстовых файлов с такой строкой:

STRT .M                 -9.0:  START DEPTH

Я хочу определить отрицательное число и заменить его на 0,1.

Я могу обнаружить отрицательное числочисло, просто ища '-'

text.count('-')

, если text.count ('-')> 0, есть отрицательное число.

Мой вопрос: как мнезаменить строку -9.0 в строке на число 0.1?В конечном итоге я хочу вывести:

STRT .M                  0.1:  START DEPTH

Ответы [ 3 ]

6 голосов
/ 26 мая 2011

Простое решение для пользователя .replace('-9.0','0.1') ( см. Документацию для .replace()), но я думаю, что вам нужно более гибкое решение на основе регулярных выражений:

import re
new_string = re.sub(r'-\d+\.\d+', '0.1', your_string)
4 голосов
/ 26 мая 2011

Похоже, вы работаете с файлами LAS.Вы можете проверить libLAS , чтобы увидеть, работает ли он для вас.И вот учебник .

1 голос
/ 26 мая 2011

Регулярные выражения могут сделать это:

>>> import re
>>> regex = re.compile(r' -\d+(\.\d+)?:')
>>> regex.sub(' 0.1:', 'STRT .M                 -9.0:  START DEPTH')
'STRT .M                 0.1:  START DEPTH'
>>> regex.sub(' 0.1:', 'STRT .M                 -19.01:  START DEPTH')
'STRT .M               0.1:  START DEPTH'
>>> regex.sub(' 0.1:', 'STRT .M                 -9:  START DEPTH')
'STRT .M                 0.1:  START DEPTH'

re.sub документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...