|
10鱼币
各位好,
为了描述清楚我的需求,请大家也参看下图,图中描述了原始文件A.txt、B.txt和代码跑完后的输出结果C.txt的格式和要求。
1.每个文件里的格式说明:
A.txt中包含了关键词,一词一行的格式。
B.txt中有多个包含A.txt关键词的集合,一集合一行。一些词后面01,02,03,04,05的标示,所以这些会影响匹配,请把这些做个处理。
C.txt是我需要输出的文件,需要严格按照A.txt的内容顺序排列。
2.图片:
3.附件如下:
A.txt
(86.39 KB, 下载次数: 1)
B.txt
(42.38 KB, 下载次数: 1)
4.在此手工显示出几个输出文件 C.txt的示例:
NILH_A=HEUHED {W1,BALCIR=HEUHED}
EBUGEN=ABV {W2,NASVTAN=ABV}
TANIL=DASVL {W2,TANIL=DASVL}
5.我一个一个手工干实在是太费劲了,希望得到您的帮助,等成功后请喝咖啡。哈哈哈(ps,我这样发帖不知道对不对,就是表达了我的急切心理)
等您的回复,谢谢。
- 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))
复制代码
|
|