Quetiapine fumarate Drug substance This document
Povidone Binder USP
This line doesn't contain any medicine name.
Dibasic calcium phosphate dihydrate Diluent USP is not present in the csv
Lactose monohydrate Diluent USNF
Magnesium stearate Lubricant USNF
Выше представлены примеры данных из файла .txt:
У меня есть список названий лекарств, которые я хочу сопоставить в файле .txt, и извлекать все данные, которые присутствуют между 2 Лекарства. (Пример лекарств из файла csv: 'Quetiapine fumarate', 'Povidone', 'Magnesium stearate', 'Lactose monohydrate' etc etc.)
веществоcopy.csv - это файл, содержащий список всех лекарств, которые я использовал в своем коде ниже.
Я хочу повторить каждую строку моего текстового файла и создавайте группы из одного лекарства в другое.
Пример вывода:
['Quetiapine fumarate Drug substance This document'],
['Povidone Binder USP'],
['Lactose monohydrate Diluent USNF'],
['Magnesium stearate Lubricant USNF']
Учитывая, что 'Quetiapine fumarate'
, 'Povidone'
, 'Lactose monohydrate
', 'Magnesium stearate'
присутствуют в моем списке веществ в csv.
Может ли кто-нибудь помочь мне сделать то же самое в Python?
Попытка до сих пор:
import re
import pandas as pd
import csv
import os
file = open(r'C:\Users\substancecopy.csv', 'r')
oo=csv.reader(file)
allsub = []
for line in oo:
allsub.append(line)
flat_list = [item for sublist in allsub for item in sublist]
def extract(filename):
file=open(filename,encoding='utf-8')
file=file.read()
n=[]
for x in flat_list:
my_regex = r"^\s?" + re.escape(x)
#my_regex_new = r"\b" + re.escape(my_regex) + r"\b"
if re.search(my_regex,file,flags=re.IGNORECASE|re.MULTILINE):
n.append(x)
n.sort()
return n
Мне нужно захватить весь текст из одного лекарства в другое, как показано в примере вывода, чего не происходит с этим фрагментом кода