我有问题。我有一个包含大量字符串的文本文件。 我想只搜索那些带有子字符串的人。 但它给了我所有可能的比赛。 我的代码是:
ok1.0 = 259
ok1.1 = 259
ok1.2 = 259
ok2.0 = 260
ok2.1 = 260
ok2.2 = 260
ok3.0 = 261
ok3.1 = 261
ok3.2 = 261
打印:
ok1.0 = 259
ok2.0 = 260
ok3.0 = 261
没关系 - 它找到了所有需要的线条。但是我最后不需要3行相同的数字。如何只在行尾添加唯一数字的行?我该怎样做才能获得这样的输出?
"'getCandidateId('\' + ${candidate.id} + '\');'"
我无法搜索正常表达式,例如ok [0-9] .0< - 这是不允许的。我必须在上面找到最后只有唯一数字的行。 感谢
答案 0 :(得分:1)
您应该以某种方式使用set()
看到的值(数字)来过滤掉未来的实例。鉴于您的文件已排序,每行的格式为tag = value
:
name = 'ok'
seen = set()
with open('C:/Users/Desktop/text.txt','r') as fin:
for line in fin:
# Split stripped line to a tag and a value
tag, value = line.strip().split(' = ', 1)
if name in tag and value not in seen:
seen.add(value)
print line
将仅打印第一个匹配的行。