2016-04-20 9 views
-1

Ich erstelle Seite mit HTML mit Kolbenserver, schreibe Funktion in Python, um Wort in Nur-Text-Datei (demo.txt) zu suchen, mein Code ist Arbeit gut, das richtige Wort zurückzugeben. Ich möchte die Anzahl der Zeit zählen, die Wörter im Text erscheinenWortzahl in Python mit Flask

def getText(self,word): 
    try: 

     myfile=open("E:\Python_work\demo.txt","r"); 
     mylist=[]; 
     text=word; 
     for line in myfile: 
      if text in line: 
        mylist.append(line); 
     return mylist; 
     myfile.close(); 
    except: 
     return err; 

Antwort

0

Dies funktioniert für mich:

def getText(self, word): 
    try: 
     counter = 0 
     myfile=open("D:\\demo.txt","r"); 
     for line in myfile: 
      counter += line.count(word) 
     myfile.close() 
     return counter 
    except: 
     return err 
0

Wenn Sie versuchen, die Anzahl der Vorkommen eines Wortes zu zählen, warum tut Die Funktion gibt eine Liste zurück? Sicher würden Sie die Anzahl der Vorkommen zurückgeben wollen?

Man könnte so etwas wie dies versuchen:

myfile = open('/path', 'r') 
text = word 
word_count = 0 
for line in myfile: 
    if text in line: 
     word_count += 1 

myfile.close() 
return word_count 

EDIT: über Code in einem Try-Block natürlich.

Hinweis: Semikolons sind in Python ein schlechter Stil. Wenn Sie sie verwenden, betrachtet der Interpreter jede Zeile als zwei Anweisungen, wobei die zweite Anweisung leer ist. Der Interpreter von Python verwendet Whitespace, um zu wissen, wann Anweisungen enden.

+0

der obige Ansatz ist falsch. Nehmen wir an, wenn Sie 2 Wörter pro Zeile haben, dann wird es als 1 zählen. –

+0

Ich versuche, das Konkordanzergebnis in der Rückkehr der Funktion, aber es ist nicht Arbeit für mich, also versuche ich mit der Liste ist es fein. Wenn Sie jetzt Wie man das Konkordanzergebnis in HTML-Datei zurückgibt, wird für mich besser sein. – SMO

+0

Ich verstehe nicht, was Sie sagen wollen? –

0

Sie können die count-Methode für die Zeichenfolge verwenden, um die Gesamtzahl zu erhalten. Unten ist die Funktion um die Anzahl der Wörter in einer Textdatei zu zählen.

def count_words(word_to_be_count): 
    with open("E:\Python_work\demo.txt","r") as f: 
     content = f.read() 
     total_count = content.count(word_to_be_count) 
    return total_count 
+0

@SMO diese Funktion zählt nur das Wort, das Sie in diese Funktion –

0

Die folgende wäre eine gute Möglichkeit, es in Python zu tun - Teil einer Klassendefinition unter der Annahme, dass die Funktion ist:

def getText(self, word): 
    with open("D:\\demo.txt") as f: 
     return f.read().count(word) 

Dies vorausgesetzt, dass Sie die Ausnahme behandeln werden (wenn die Datei existiert nicht) im Aufrufer. Andernfalls verwenden Sie einen try/exception und geben Sie einen geeigneten Fehlerwert zurück:

def getText(self, word): 
    try: 
     with open("D:\\demo.txt") as f: 
      return f.read().count(word) 
    except IOError: 
     return -1 
+0

übergeben, danke, aber ich wollte nicht das ganze Wort in der Textdatei zählen, ich will nur die Nummer des Erscheinens des Suchwortes im Rückgabentext zählen – SMO