2017-04-08 4 views
2

Ich möchte zählen Sie die Anzahl der Zeilen in einer TXT-Datei waren eine Zeichenfolge enthält zwei Unterzeichenfolgen.Wie Zählen Ocurrences von Unterordnungen in Zeichenfolge aus Textdatei - Python

Ich habe versucht, die folgenden:

with open(filename, 'r') as file: 
    for line in file: 
     wordsList = line.split() 
     if any("leads" and "show" in s for s in wordsList): 
      repetitions +=1 

print "Repetitions: %i" % (repetitions) 

Aber es scheint nicht, wie es sollte funktionieren. Mit der folgenden Demo-Eingabedatei bekam ich 3 Wiederholungen, wenn es 2 sein soll:

www.google.es/leads/hello/show 
www.google.es/world 
www.google.com/leads/nyc/oops 
www.google.es/leads/la/show 
www.google.es/leads/nope/pop 
leads. 
show 

Ich versuchte chaning auch „any“ für „all“ aber ich habe noch seltsame Ergebnisse.

+4

Sie meinen ' "führt" in s und "Show" in s' –

+0

@ThierryLathuille oh Gott es funktionierte Danke ! – ignasibm

Antwort

0

"leads" and "show" in s wird interpretiert als: "leads" and ("show" in s) wegen der Vorrangstellung.

Python versucht, "Leads" als Boolean zu interpretieren. Da es sich um eine nicht leere Zeichenfolge handelt, wird True ausgewertet.

Also, Ihr Ausdruck ist äquivalent zu "show" in s

Was Sie meinen, ist: "leads" in s and "show" in s

Verwandte Themen