我有以下代碼來搜索文本檔案并提取某些元素之間的文本部分: start="a owl:Class" end=' .\n' 并將這些文本部分附加為串列的元素。
contents = []
with open(r'C:/Users/Jupyter Notebooks/small.ttl', 'r', encoding="UTF-8") as f:
recording = False
content = ''
for line in f:
if start in line:
recording = True
if recording and end in line:
recording = False
contents.append(content)
if recording:
content = line
else:
content = ''
for i in contents
print (i)
串列內容包含兩個由文本字串組成的元素。每行文本都以一個新行開始 第一個元素:
http://purl.bioontology.org/ontology/SNOMEDCT/1075251000119104貓頭鷹:類;skos:prefLabel """獲得性左跖骨內收肌"""@en ; skos:notation """1075251000119104"""^^xsd:string ; skos:altLabel """獲得性左跖骨內收肌(障礙)"""@en ; http://purl.bioontology.org/ontology/SNOMEDCT/has_finding_site http://purl.bioontology.org/ontology/SNOMEDCT/726438004; http://purl.bioontology.org/ontology/SNOMEDCT/has_associated_morphology http://purl.bioontology.org/ontology/SNOMEDCT/767172008; http://purl.bioontology.org/ontology/SNOMEDCT/occurs_in http://purl.bioontology.org/ontology/SNOMEDCT/767023003;rdfs: ; rdfs:subClassOf http://purl.bioontology.org/ontology/SNOMEDCT/774124003;
第二個要素:
http://purl.bioontology.org/ontology/SNOMEDCT/10308009貓頭鷹:類;skos:prefLabel """Argon-42"""@en ; skos:notation """10308009"""^^xsd:string ; skos:altLabel """42-Ar"""@en , """Argon-42 (substance)"""@en ; rdfs:subClassOf http://purl.bioontology.org/ontology/SNOMEDCT/35016001; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000508004~ACCEPTABILITYID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/TYPE_ID """9000000000000013009"""^^xsd:string ; http://purl.bioontology。 org/ontology/SNOMEDCT/CASE_SIGNIFICANCE_ID """ 900000000000017005 """"^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000509007~可接受ID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/INACTIVATION_INDICATOR """723277005""""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000490003~VALUEID~723277005"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000509007~ACCEPTABILITYID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/TYPE_ID """9000000000000013009"""^^xsd:string ; http://purl.bioontology。 org/ontology/SNOMEDCT/CASE_SIGNIFICANCE_ID """ 900000000000448009 """"^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000508004~可接受ID~900000000000548007"""^^xsd:string ;
我想逐行檢查每個串列元素并檢查該行是否包含某個字串。例如:
if "a:owl Class" in line:
print line
我的問題是我無法遍歷串列元素的行。
uj5u.com熱心網友回復:
所以我做了這個。
首先,我將您的 2 個元素轉換為字串并將它們放入串列中。
string1 = 'http://purl.bioontology.org/ontology/SNOMEDCT/1075251000119104 a owl:Class ; skos:prefLabel """Acquired left metatarsus adductus"""@en ; skos:notation """1075251000119104"""^^xsd:string ; skos:altLabel """Acquired left metatarsus adductus (disorder)"""@en ; http://purl.bioontology.org/ontology/SNOMEDCT/has_finding_site http://purl.bioontology.org/ontology/SNOMEDCT/726438004 ; http://purl.bioontology.org/ontology/SNOMEDCT/has_associated_morphology http://purl.bioontology.org/ontology/SNOMEDCT/767172008 ; http://purl.bioontology.org/ontology/SNOMEDCT/occurs_in http://purl.bioontology.org/ontology/SNOMEDCT/767023003 ; rdfs:subClassOf http://purl.bioontology.org/ontology/SNOMEDCT/99701000119102 ; rdfs:subClassOf http://purl.bioontology.org/ontology/SNOMEDCT/774124003 ;'
string2 = 'http://purl.bioontology.org/ontology/SNOMEDCT/10308009 a owl:Class ; skos:prefLabel """Argon-42"""@en ; skos:notation """10308009"""^^xsd:string ; skos:altLabel """42-Ar"""@en , """Argon-42 (substance)"""@en ; rdfs:subClassOf http://purl.bioontology.org/ontology/SNOMEDCT/35016001 ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000508004~ACCEPTABILITYID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/TYPE_ID """900000000000013009"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/CASE_SIGNIFICANCE_ID """900000000000017005"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000509007~ACCEPTABILITYID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/INACTIVATION_INDICATOR """723277005"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000490003~VALUEID~723277005"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000509007~ACCEPTABILITYID~900000000000548007"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/TYPE_ID """900000000000013009"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/CASE_SIGNIFICANCE_ID """900000000000448009"""^^xsd:string ; http://purl.bioontology.org/ontology/SNOMEDCT/SUBSET_MEMBER """900000000000508004~ACCEPTABILITYID~900000000000548007"""^^xsd:string ;'
contents = [string1,string2]
從這部分開始,您應該能夠重現我的代碼。
首先,我遍歷串列中的每個專案。
然后我使用 將每一行拆分為一個串列;作為分隔符。
然后我在串列中的每個專案上迭代每個串列以查找您的字串。
for content in contents:
for line in content.split(';'):
if 'a owl:Class' in line:
print(i)
這是我的輸出,
http://purl.bioontology.org/ontology/SNOMEDCT/1075251000119104 a owl:Class
http://purl.bioontology.org/ontology/SNOMEDCT/10308009 a owl:Class
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/337495.html
上一篇:無效的日期決議器
