A.txt中的关键词,在B.txt中的搜索 求助,感谢
各位好,为了描述清楚我的需求,请大家也参看下图,图中描述了原始文件A.txt、B.txt和代码跑完后的输出结果C.txt的格式和要求。
1.每个文件里的格式说明:
A.txt中包含了关键词,一词一行的格式。
B.txt中有多个包含A.txt关键词的集合,一集合一行。一些词后面01,02,03,04,05的标示,所以这些会影响匹配,请把这些做个处理。
C.txt是我需要输出的文件,需要严格按照A.txt的内容顺序排列。
2.图片:
3.附件如下:
4.在此手工显示出几个输出文件 C.txt的示例:
NILH_A=HEUHED {W1,BALCIR=HEUHED}
EBUGEN=ABV {W2,NASVTAN=ABV}
TANIL=DASVL {W2,TANIL=DASVL}
5.我一个一个手工干实在是太费劲了,希望得到您的帮助,等成功后请喝咖啡。哈哈哈(ps,我这样发帖不知道对不对,就是表达了我的急切心理)
等您的回复,谢谢。
Amgalang 发表于 2022-8-8 20:37
终于等到你,真心感谢,方便给到代码吗?我想学习学习,再次感谢。
set2list = lambda s:s.replace("'","").replace("{","['").replace("}","']").replace(",","','").replace(" ","")
list2set = lambda l:'{' + ','.join(l) + '}'
with open('A.txt','r',encoding='utf-8') as a:
dataA = a.readlines()
with open('B.txt','r',encoding='utf-8') as b:
dataB = b.readlines()
res = []
for la in dataA:
la = la.strip()
for lb in dataB:
lb = eval(set2list(lb.strip()))
if la in lb:
lb.remove(la)
res.append(la+' '+list2set(lb))
break
else:
res.append(la+' '+'{}')
with open('C.txt','w',encoding='utf-8') as c:
c.write('\n'.join(res))
补充说明:
1.A.txt中只有一部分词在B.txt中,不是全部词汇都有。
2.A.txt中的词每个词中间都有“=”号,不用管它,B.txt也如此,就看做一个词即可。
谢谢 Amgalang 发表于 2022-8-8 19:26
补充说明:
1.A.txt中只有一部分词在B.txt中,不是全部词汇都有。
2.A.txt中的词每个词中间都有“=”号, ...
不好意思,再补充一个:
A.txt中的词若不在B.txt也要在C.txt中按照原始A.txt中的顺序写入C.txt,只是后面就是一个空集合。 qq1151985918 发表于 2022-8-8 20:29
终于等到你,真心感谢,方便给到代码吗?我想学习学习,再次感谢。
页:
[1]