使用Python逐行比对两个TXT文件中每行数据,有相同的数字,但是为何结果好乱啊 ?
两个记事本文件内容
test1
1,2,3,4,5,6
5,6,7,8,9,10
11,12,13,14,15
test2
2,3,4,5,6,7
7,8,9,10,11,12
我想用逐行比对的方法对比 test1 中的第一行与 test2 中的所有行比对,然后是 test1 的第二行,以此类推,查找对比过程中两行数组中是否有 4 个相同的数字,找到的话就返回test2 中对应的行数据,
下面是我的代码,我就写了这么多,最后发现了好多未知的问题,水平太低,进行不下去了,望各位提携~!
import os, linecache
file1 = open('test1.txt','r',encoding= 'gb18030');
arr1 = file1.readlines()
file2 = open('test2.txt','r',encoding= 'gb18030');
arr2 = file2.readlines()
for fields1 in arr1:
for fields2 in arr2:
c = set(fields1).intersection(set(fields2))
d = len(c)
if d == 4:
print(list(c), ",", len(c))
返回结果看着好乱:
['2', ',', '3', ',', '4', ',', '5', ',', '6', ',', '7', '\n'] ['7', '5', '6', '\n', ','] , 5
['2', ',', '3', ',', '4', ',', '5', ',', '6', ',', '7', '\n'] ['4', '2', '3', '5', ','] , 5
回复
1个回答
test
2024-07-01
arr1 = ["1,2,3,4,5,6", "5,6,7,8,9,10", "11,12,13,14,15"]
arr2 = ["2,3,4,5,6,7", "7,8,9,10,11,12"]
for fields1 in arr1:
nums1 = set(fields1.split(',')) # 把字符串按逗号分割成单独的数字,并去重
for fields2 in arr2:
nums2 = set(fields2.split(',')) # 同上
c = nums1.intersection(nums2) # 求两个集合的交集
d = len(c)
if d >= 4: # 满足条件则打印并终止搜索
print(fields2)
break
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容