Python и регулярные выражения - поиск в файле - PullRequest
0 голосов
/ 03 апреля 2019

Предположим, у меня есть текст в файле * .txt:

NUM_SITE_CHAINS 1
SITE_DESCR EVIDENCE_CODE: SOFTWARE BINDING  FOR RESIDUE ZN A 179
NUMBER_OF_AA 4 22
EXPOSURE   0.45   0.26
DISCONTINUITY 18.000
SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700
ENVIRONMENT 0.718 -0.232 0.138 0.000 40.164 28.782 55.655 42.505

Я хочу найти строку, начинающуюся с "SITE". В моем примере это будет 6-я строка.Я не хочу найти вторую строку, потому что после "SITE" нет пробела.Для этого я попробовал что-то вроде этого:

with open(fname) as openfile:
    for line in openfile:
        for part in line.split():
            if re.search(r"^SITE\s", part):
                listSITE.append(line)

Но «listSITE» остается пустым.Есть ли проблема с выражением регулярного выражения или неуместным re?метод?Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 03 апреля 2019
with open(fname) as openfile:
    for line in openfile:
        if line.startswith('SITE '):
            listSITE.append(line)

Нет необходимости импортировать re, просто используйте startsith (обратите внимание на пробел в конце строки SITE.

1 голос
/ 03 апреля 2019

Используйте re.findall, с рисунком ^SITE .*$:

input = "..."
lines = re.findall(r'^SITE .*$', input, flags=re.MULTILINE)
print(lines)

['SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...