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!")
我一直在寻找这个问题的答案,但似乎找不到我需要的东西。我想要一个 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!")