Получить текст на основе номера строки - PullRequest
1 голос
/ 01 мая 2019

Я читаю файл изображения OCR и преобразовываю его в текст.Теперь мне нужно извлечь один конкретный текст.

Сгенерированный текст (не полный текст):

FROM: 2902 W SWEETWATER AV #1100
Phoenix, AZ 95029

TO: BANNER THUNDERBIRD MED CTR
5855 W THUNDERBIRD RD
Glendale, AZ 85307

c9 23 1975 x

Мне нужно извлечь 95029 под ОТ: сегмент.Я думал, чтобы сначала получить номер строки FROM: сегмент, затем сделать плюс один, чтобы получить номер следующей строки и применить регулярное выражение для получения текста. Но я не могу набрать номер следующей строки.

for num, line in enumerate(text.splitlines()):
    if 'FROM:' in line:
        num = num+1
        print(num)
        break
#print(line)

Я могу получить номер строки, но не текст.Пожалуйста, предложите.

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Сохраните разделенный текстовый список в переменную, text_list = text.splitlines() позже вы можете получить доступ к следующей строке, используя text_list[num+1]

Попробуйте что-то вроде этого:

text = """FROM: 2902 W SWEETWATER AV #1100
Phoenix, AZ 95029

TO: BANNER THUNDERBIRD MED CTR
5855 W THUNDERBIRD RD
Glendale, AZ 85307

c9 23 1975 x"""



desired_line = ''
text_list = text.splitlines()

for num, line in enumerate(text_list):
    if 'FROM:' in line:
        desired_line = text_list[num+1]
        break

print(desired_line) # prints desired line
print(desired_line.split()[-1]) # prints Number you seeked
0 голосов
/ 01 мая 2019

Вы также можете сделать это с помощью регулярного выражения, если адрес От имеет тот же формат.Аналогичное регулярное выражение также может применяться для поиска адреса Кому и почтового индекса.

text = """FROM: 2902 W SWEETWATER AV #1100
Phoenix, AZ 95029

TO: BANNER THUNDERBIRD MED CTR
5855 W THUNDERBIRD RD
Glendale, AZ 85307 

c9 23 1975 x"""

import re
res=re.search("FROM:.*\n(([a-zA-Z]+),\s*([A-Z]{2})\s+(\d{5})\n)",text)
if res is not None:
    print(res.group(0)) ## From address
    print(res.group(1)) ## city, state zip----Phoenix, AZ 95029
    print(res.group(4)) ## zip---95029
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...