Я пытаюсь найти простой текст в этой конфигурации:
Named H Man, MBA
Personal:
Address:
Professional:
0000 Something St
Apt 000
City, ST 12345-6789
No Business Contact Information.
Academic:
2019 Bachelors, Education - AF s
Моя цель - получить только первую часть адреса в этом тексте, части «0000 Something St» и «Apt 000». Это осложняется тем фактом, что некоторые записи в незашифрованном виде настраиваются по-разному, поэтому я использую более общий метод: я пытаюсь найти строки, содержащие слово «Address:» или «Professional:», чтобы получить строку, которая начинает ту часть текста, которую я хочу, а затем найти любую строку после нее, которая содержит запятую в качестве конца. После того, как это сработает, я напишу код, чтобы потом удалить все, что мне не нужно, из этих строк. Большинство текстов работают с программой как написано - только этот ничего не выводит, я думаю, это потому, что он по какой-то причине неправильно определяет слова «Address:» или «Professional:».
Код, который я написал до сих пор, таков, плюс метод вывода их потом, который не может быть проблемой:
def FindAddress(person):
global address
address = "NA"
addressUncropped = ""
lineBeforeAddress = 0
lineAfterAddress = 0
personLines = person.splitlines()
wordList = []
lineIndex = 0
for line in personLines: # This sets up the before and after markers to be used later
wordList = line.split(" ")
for word in wordList:
print(word)
if word == "Address:" or word == "Professional:" and lineBeforeAddress == 0:
lineBeforeAddress = lineIndex
if "," in line and lineAfterAddress == 0 and lineIndex >= lineBeforeAddress:
lineAfterAddress = lineIndex+1
lineIndex += 1
for line in personLines[lineBeforeAddress:lineAfterAddress]: # This uses the before and after markers to get the address
addressUncropped += line
Если у вас есть какой-либо другой не связанный совет, который может помочь с этой задачей, я также хотел бы услышать это. Спасибо!