2016-04-20 12 views
-1

私はフラスコサーバーでHTMLを使用してページを作成しています。Pythonでプレーンテキストファイル(demo.txt)で単語を検索する機能を記述しています。私は単語がテキストで表示された時間数をカウントしたいFlaskでPythonの単語数

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; 

答えて

0

これが私の作品:

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

あなたは単語の出現回数をカウントしようとしている場合は、なぜ関数はリストを返しますか?確かにあなたは出現の数を返すと思いますか?当然のtryブロック内のコード上で:

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:

あなたはこのような何かを試みることができます。

サイドノート:セミコロンはPythonでは悪いスタイルです。それらを使用すると、インタープリターは各行を2つのステートメントとみなし、2番目のステートメントは空白にします。 Pythonのインタプリタは、文が終わるときを知るために空白を使います。

+0

上記の方法は間違っています。 1行に2単語があれば1と数えます。 –

+0

私は関数の返り値に一致結果を返しますが、それは私の仕事ではありませんので、リストで試してみてください。どのようにhtmlファイルで一致結果を返すのが私にとっては良いでしょう。 – SMO

+0

あなたは何を言っているのか分かりません。 –

0

stringのcountメソッドを使用して合計数を取得できます。以下は、テキストファイルの単語数を数える関数です。

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この関数はカウントされますこの関数に渡す言葉だけが –

0

次はPythonでそれを行うには良い方法だろう - 関数は、クラス定義の一部であると仮定すると:

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

これは、例外を処理します前提としています(ファイルの場合存在しません)。それ以外の場合は、try/exceptを使用して、適切な失敗値を返します。

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

ですが、私はテキストファイル内のすべての単語を数えたくありませんでした。返信テキストに検索語の出現数を数えたいだけです – SMO

関連する問題