2017-11-17 4 views
-1

私のプログラムでは、入力テキストファイルがあります。私はリストを繰り返し、リスト内のすべての単語を "text"という文字列に追加します。次に、文字列にtokenizerを使用しますが、失敗します。Pythonで文字列に格納された単語をトークン化する

x = open("Tokens.txt") 
text = "" 
for line in iter(x): 

    text += line[0:-1] + " " 

x.close() 

for i in tokenizer(text): 
    print(i) 

Iハードトークナイザに入力をコーディングする場合、テキストファイル -

abx 
* 
22; 
print "example" 
time = 26 

に格納された入力は、プログラムが正しいトークンを出力しますWORKS-。しかしthis-

#for i in tokenizer("abx * 22; print \"example\" time = 26"): 
    #print(i) 

と同じように、私はそれを、テキストファイルを開き、ファイルからの入力をつかむし、分析するために必要なんだけど、それは動作しません。これは私が得ているエラーです。

Traceback (most recent call last): 

File "C:/Users/XX/PycharmProjects/check/lexical.py", line 35, in <module> 
    for i in tokenizer(text): 

File "C:/Users/XX/PycharmProjects/check/lexical.py", line 26, in tokenizer 
    raise Exception('Cannot output tokens') 
Exception: Cannot output tokens 
+1

完全なコードを表示できますか?私。どのパッケージからトークナイザをインポートしていますか? また、ファイル "x"を呼び出し、オブジェクト "f"を閉じます。また、コード内の行の最後に不要なセミコロンがあります。 –

+0

申し訳ありませんが、それを修正しました。私はコードの残りの部分を編集します...私はどのパッケージからもtokenizerをインポートしませんでした。私がインポートしたのはregexのための "re"でした。 – John

+0

そのような質問は削除しないでください。他の人は、同じ問題を探して解決策から利益を得るかもしれません。 –

答えて

0

私はコメントする評判がないので、私は答えとして投稿しています。 ファイルの反復処理は、for line in x.readlines()

0

としてください。コードの短いバージョンです。明示的に「with」構文を使用するのは、opencloseです。

with open("Tokens.txt") as f: 
    text = " ".join(f.readlines()) 

[print(i) for i in tokenizer(text)] 
関連する問題