刘 B-NAME
晔 E-NAME
女 O
士 O
, O
女 O
, O
安 O
徽 O
六 O
安 O
人 O
, O
1 O
9 O
6 O
3 O
年 O
1 O
2 O
月 O
生 O
, O
毕 O
业 O
于 O
安 O
徽 O
广 O
播 O
电 O
视 O
大 O
学 O
财 O
税 O
专 O
业 O
, O
大 O
专 O
学 O
梁 B-NAME
中 M-NAME
华 E-NAME
先 O
生 O
, O
出 O
生 O
于 O
1 O
9 O
6 O
3 O
年 O
8 O
月 O
, O
中 O
国 O
国 O
籍 O
, O
无 O
境 O
外 O
永 O
久 O
居 O
留 O
权 O
数据如上,空行分隔为一个句子,文字和标签之间以空格分隔,想要保留右侧标签含有B-NAME和M-NAME和E-NAME的句子,即希望处理后留下的是
刘 B-NAME
晔 E-NAME
女 O
士 O
, O
女 O
, O
安 O
徽 O
六 O
安 O
人 O
, O
梁 B-NAME
中 M-NAME
华 E-NAME
先 O
生 O
, O
出 O
生 O
于 O
1 O
9 O
6 O
3 O
年 O
8 O
月 O
, O
中 O
国 O
国 O
籍 O
, O
无 O
境 O
外 O
永 O
久 O
居 O
留 O
权 O
请问用python怎么处理呢?请赐教,不胜感激。
list1 = []
with open('test.txt', 'r') as FA:
for line in FA:
line = line.strip()
if line == "":
list1.append('#')
continue
list1.append(line)
list1Str = "_".join(i for i in list1)
finalList = []
for eachStr in list1Str.split('#'):
if "B-NAME" in "".join(i for i in eachStr.split('_')) or "M-NAME" in "".join(i for i in eachStr.split('_')) or "E-NAME" in "".join(i for i in eachStr.split('_')):
finalList.append(eachStr)
for li in finalList:
li = li.split('_')
for eachLi in li:
print(eachLi)
是要这样的吗?
没看明白需求, 是只留含名字的行,不同名字用空行分隔?
就像这样?
刘 B-NAME
晔 E-NAME
梁 B-NAME
中 M-NAME
华 E-NAME
list1=【】
list2=【】
with open ("a.txt", "r", encoding="utf-8") as f:
for line in f:
if "ANAME" in line:
list 1.append(line)
elif "BNAME" in line:
list 2.append(line)
elif:
continue