2016-01-04 37 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

相關問題