Python:How 你能递归搜索 .txt 文件,找到匹配项并打印结果吗

Python:How can you recursively search a .txt file, find matches and print results

我一直在寻找这个问题的答案,但似乎找不到我需要的东西。我想要一个 python 脚本来读取我的文本文件并从顶部开始遍历文件的每一行,然后打印出另一个 txt 文件中的所有匹配项。文本文件的内容只是 4 位数字,如 1234。 例子 1234 3214 4567 8963 1532 1234 ...等等。 我希望输出类似于: 1234 :找到匹配项 = 2 我知道文件中有将近 10000 行的匹配项。我感谢任何帮助。如果有人能给我指出正确的方向,那就太好了。谢谢。

import re

file = open("filename", 'r')
fileContent=file.read()
pattern="1234"
print len(re.findall(pattern,fileContent))

如果我是你,我会打开文件并使用 split 方法创建一个包含所有数字的列表,并使用集合中的 Counter 方法计算列表中每个数字有多少是重复的。 `

from collections import Counter

filepath = 'original_file'
new_filepath = 'new_file'

file = open(filepath,'r')
text = file.read()
file.close()

numbers_list = text.split('\n')
numbers_set = set(numbers_list)

dupes = [[item,':matches found =',str(count)] for item,count in Counter(numbers_list).items() if count > 1]
dupes = [' '.join(i) for i in dupes]


new_file = open(new_filepath,'w')
for i in dupes:
    new_file.write(i)
new_file.close()

`

感谢所有帮助过我的人。感谢@csabinho 提供的代码,感谢@IanAuld 向我提问 "Why do you think you need recursion here?" – IanAuld。这让我想到解决方案很简单。我只想知道哪些 4 位数字有重复,有多少,以及哪些 4 位数字组合是唯一的。所以这就是我想出的,而且效果很好!

import re

a=999
while a <9999:
a = a+1

file = open("4digits.txt", 'r')
fileContent = file.read()

pattern = str(a)
result = len(re.findall(pattern, fileContent))
if result >= 1:
    print(a,"matches",result)
else:
    print (a,"This number is unique!")