Я пытаюсь вытянуть текст между двумя тегами <example>text</example>
.Я нашел сообщение, которое может сделать это с помощью регулярного выражения;однако, когда я пытаюсь использовать это в Python, я вынужден экранировать символы.
original regex : run = re.findall("(?<=(<runs>))(\w|\d|\n|[().,\-:;@#$%^&*\[\]"'+–/\/®°⁰!?{}|`~]| )+?(?=(</runs>))", text)
FullCode:
#text is a text file but there is too much data to process to post it here
text = "<os>Windows Vista or Windows 7</os><filename>AS_ENGINE.EXE</filename><header_size>240</header_size><atime>2019-04-28T13:34:34Z</atime><runs>1</runs><filenames><file>
<os>Windows Vista or Windows 7</os><filename>CHRMSTP.EXE</filename><header_size>240</header_size><atime>2019-04-28T13:15:32Z</atime><runs>2</runs><filenames>
<os>Windows Vista or Windows 7</os><filename>RUNDLL32.EXE</filename><header_size>240</header_size><atime>2019-04-28T13:07:35Z</atime><runs>1</runs><filenames><file>"
soup = BeautifulSoup(text, "lxml")
for x in soup.find_all("runs"):
print("Orginal ", x)
for x in soup.find_all("dir"):
print("Orginal ", x)
for x in soup.find_all("filename"):
print("Orginal ", x)
Затем я хочу написать определенные тегив csv ...
fieldnames = 'File Nmae','Number of runs','File Path'
with open("C:\\ProgramData\\processed\\winprefetch.csv", 'w', newline='', encoding="utf8") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(fieldnames)
writer.writerows([[diskimage_name * row], filename, numberofruns,file]