2016-01-04 36 views
0

我想匹配文件中的多个字符串。我如何在Python中做到这一点?匹配包含来自文件python的多行字符串

目的:匹配这是从文件具有 “DC1” & “TIER2” 的两个值


我的代码,但给匹配的任何字符串从字符串对象中的线

strings = ["DC1","TIER2"] 
with open(r"D:\kick-6.log", "r") as data: 
    for deltaa in data: 
     deltaa = data.readline().rstrip() 
     print ("*********") 
     for item in strings: 
      if item in deltaa: 
       print (deltaa) 
+0

你会发布*开球6.log *的内容。 – vaultah

+1

你可能只想在第四行加上'deltaa = deltaa.rstrip()'。 – grc

+0

是的。试过,很好 – veejay

回答

2

使用all进行检查:

all(iterable)如果迭代器的所有元素均为true,则返回True(如果迭代器为空,则返回 )。等效于:

def all(iterable): 
    for element in iterable: 
     if not element: 
      return False 
    return True 
strings = ["DC1","TIER2"] 
with open(r"D:\kick-6.log", "r") as data: 
    for deltaa in data: 
     if all(x in deltaa for x in strings): #Check if all items in strings exit in deltaa 
      print (deltaa) 

如果你想检查的strings至少一个是deltaa使用any代替:

any(iterable)返回真,如果可迭代的任何元素真正。如果 迭代器为空,则返回False。等效于:

def any(iterable): 
    for element in iterable: 
     if element: 
      return True 
    return False 
strings = ["DC1","TIER2"] 
with open(r"D:\kick-6.log", "r") as data: 
    for deltaa in data: 
     if any(x in deltaa for x in strings): #Check if any item in strings exits in deltaa 
      print (deltaa) 
+0

谢谢你的工作 – veejay

+0

@veejay ..随意[accept](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)我的回答 –

+0

if我想从上面的例子只打印非匹配的字符串做什么? – veejay

相关问题